将变量从一个jsp发送到另一个jsp
我有一个JSP文件作为jsp 1.jsp ,另一个JSP文件作为jsp 2.jsp
我使用在jsp 1.jsp中包含了jsp 2.jsp
现在我需要一些元素上的click事件。 在那个事件上,我想将一个字符串变量传递给包含的jsp。
让我说我有一个列表,点击它我想将列表的名称转移到另一个JSP,
在另一个JSP中,我试图使用该字符串来执行某些任务。
我正在做所有这些没有任何servlet。 挑战一个!! 我已经google了很多,但没有找到任何东西。
您有很多选择:
-
将其存储在会话中。
// Memorise any passed in user. String username = request.getParameter("username"); if (username != null && username.length() > 0) { session.setAttribute("username", username); }
-
将其存储为表单中的隐藏字段。
-
将其存储在cookie中。
username = getCookie(userCookieName); // Get from cookie. function getCookie(name) { if (document.cookie) { index = document.cookie.indexOf(name); if (index !== -1) { f = (document.cookie.indexOf("=", index) + 1); t = document.cookie.indexOf(";", index); if (t === -1) { t = document.cookie.length; } return(document.cookie.substring(f, t)); } } return (""); }
-
在sessionStorage中将其保留在客户端。 详情请见此处 。
sessionStorage.setItem("username", "...");
-
不是另一种选择,而是一种机制 – 在URL中传递它:
.... onclick="window.location='details.jsp?username=...'
如果在jsp 1
包含jsp 2
的原因是发送变量,则not needed
。 你只需要在jsp 1
设置一个hidden
变量,在你的jsp 2
你应该能够通过使用jsp implicit request
对象来访问它。
尝试使用Ajax with JQuery
来实现您的目标,或者您只需将String对象存储在session
并且可以在使用它时在jsp2.jsp
中将其删除。 或者你可以简单地追加到一个url
作为query string
其中有多种方式,以上几种。
这些问题可能对您有帮助
问题1
问题2
问题3
问题4
在jsp1中使用这种方式传递值。
在jsp2中获取价值
String value=request.getParameter("hidden");
你可以设置一个jsp:param
,就像这个例子中的jsp:param元素一样,或者看一下这个类似的post在JSP页面之间传递参数 。