我试图在两个jsp文件之间传递一个变量,但是当我来使用它们时,我收到一个错误,说“'会话未定义'
我使用以下内容:
Jsp1:
//following function is called on a button press
function clickAndClose()
{
session.setAttribute("test", "some value here");
window.close();
}
Jsp2:
<!DOCTYPE html>
<html>
<body>
Show Selected RS Number
<script language="javascript">
String number = session.getAttribute("test");
session.removeAttribute("test");
document.write(number);
</script>
</body>
</html>
我在session.setAttribute上收到错误的事实让我感到困惑,因为我认为session是一个隐含的对象(包括?)?
注意:我在session.setAttribute("test", "some value");
收到错误,说会话未定义,不是String text = session.getAttribute("test");
答案 0 :(得分:3)
您正试图在session
标记内使用<script language="javascript">
,但在那里无效。在scriptlet
或jstl
标记内使用它。
Javascript在客户端执行,而jsp隐式对象在服务器端可用并执行
答案 1 :(得分:2)
你不能直接在javascript中访问会话,你可以使用类似的东西来欺骗它:
<!DOCTYPE html>
<html>
<body>
Show Selected RS Number
<script language="javascript">
var number = '<%= session.getAttribute("test") %>';
document.write(number);
</script>
</body>
</html>
答案 2 :(得分:0)
<%HttpSession sess = request.getSession(true);
sess.setAttribute("test", "some value");%>
上面的代码将为您提供所需的会话对象。强烈建议使用EL(表达式语言)和JSTL标记。例如,在这里你可以使用EL作为
<td><input type="text" value="${test}" /></td>