我有一个JSP文件 jsp 1.jsp 另一个JSP文件为 jsp 2.jsp
我使用<%@include file="jsp 2.jsp" %>
现在我需要在某个元素上执行click事件。在那个事件中,我想将一个字符串变量传递给包含jsp。
假设我有一个列表,点击它我想将列表名称转移到另一个JSP,
在另一个JSP中,我试图使用该字符串来执行某项任务。
我正在做所有这些没有任何servlet。 挑战一个!! 我已经google了很多次,但没有找到任何东西。
答案 0 :(得分:11)
您有多种选择:
将其存储在会话中。
// Memorise any passed in user.
String username = request.getParameter("username");
if (username != null && username.length() > 0) {
session.setAttribute("username", username);
}
将其存储为表单中的隐藏字段。
<input name="username" type="hidden" value=""/>
将其存储在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中将其保留在客户端。有关详细信息,请参阅here。
sessionStorage.setItem("username", "...");
不是另一种选择,而是一种机制 - 在URL中传递它:
.... onclick="window.location='details.jsp?username=...'
答案 1 :(得分:2)
如果在jsp 2
中包含jsp 1
的原因是发送变量,那么not needed
。
您只需要在hidden
中设置jsp 1
变量,并使用jsp 2
对象在jsp implicit request
中设置您应该访问的变量。
答案 2 :(得分:1)
尝试使用Ajax with JQuery
来实现您的目标,或者只需将String对象存储在session
中,然后您可以在jsp2.jsp
中将其删除。或者你可以简单地追加到url
作为query string
,其中有多种方式,上面的很少。
这些问题可能会对您有所帮助
答案 3 :(得分:0)
在jsp1中 用这种方式传递价值。
<form action="">
<input type="hidden" name="hidden" value="hidden">
<input type="submit" value="submit"></form>
在jsp2中获取值
String value=request.getParameter("hidden");
答案 4 :(得分:0)
您可以设置jsp:param
,例如jsp:param element,或者查看此类似帖Passing parameters between JSP pages。