是学习JSP和尝试在两页之间传递数据的新手。
我想知道是否可以将javascript变量传递给 session.setAttribute()
session.setAttribute()
目前,我可以像这样通过2个jsp文件传递文本字符串:
JSP1:
<% String text = "hello"; session.setAttribute("test", text);%>
JSP2:
var someText = "<%=session.getAttribute("test")%>"
效果很好。
然而,是否有可能通过一个var进入session.setAttribute呢?我将一些数据存储在javascript变量中,并希望将其发送到第二个JSP文件。
var
session.setAttribute
因此,例如:
var number = 7; <%session.setAttribute("test", number);%>
我已经尝试过了,但出现错误“数字无法解析为变量”
谢谢!
您无法执行此操作,因为javascript在客户端执行,而JSP在服务器端执行。
如果要将javascript变量设置为JSP会话,则可以通过如下所示通过URL传递此变量
var number = 7; window.location="http://example.com/index.jsp?param="+number;
现在像这样在您的JSP页面中接收此var
String var = request.getParameter("param");
现在在会话中进行设置
session.setAttribute("test", var);
编辑:
在上面的代码中,服务器将仅在<%%>内部执行代码。它不知道JSP标记之外的任何内容。因此,它也不知道您的javascript变量number。
number
服务器执行该代码,结果将发送到浏览器,然后您的浏览器将执行该javascript代码var number=7;。
var number=7;
希望,现在对您来说很清楚。