如何解决如何将javascript变量分配给jsp或jstl
|| 谁能告诉我如何将JavaScript变量分配给jsp请求或jsp会话。 我正在做这样的事情deletedRows
是隐藏字段。
var del=45;
document.getElementById(\"deletedRows\").value=del
alert(document.getElementById(\"deletedRows\").value);
<%string del_values = request.getParameter(\"deletedRows\");%>
<%request.getSession().setAttribute(\"del_rows\",del_values);%>
我在servlet中没有得到del
的值。
解决方法
JSP在服务器上编译。客户端获得的只是JSP的“输出”:HTML,CSS和Javascript。
此后将执行Javascript。这意味着当执行JavaScript时,JSP中的所有内容都变成了HTML等。您可能会认为这是因为Java / JSP部分已经“完成”,而现在HTML / Javascript部分接手了。
现在,您希望将通过Javascript计算/操纵的某些值传递回服务器。 (我认为这是当您说“将javascript变量设置为jsp请求或jsp会话”时的意思。
为此,您必须将页面提交到服务器,并且这些值应该是正在提交的表单的一部分。
您可能已经在某些HTML元素(例如
<input>
或<select>
)中拥有了这些值,否则,您可以创建隐藏元素,并在提交<form>
之前用这些值填充这些元素。
在提供的代码中,您正确地填充了隐藏字段,但是必须在servlet中而不是在JSP本身中检索值。另外,请确保已提交“ 5”中的隐藏字段并提交了该表单。
表单提交到servlet后,可以通过“ 7”在servlet中检索值。
很少有其他机制可以使用URL参数或通过异步(AJAX)请求将值发送到服务器,但是我不确定您是否也在关注这些机制。
, 从浏览器提交的任何表单字段(包括隐藏字段)都可以在JSP中使用request.getParameter(\"fieldname\");
进行访问。查询字符串参数的访问方式可以相同。
确保您的表单字段指定了name
属性,因为该名称(而不是id
属性)成为服务器端代码中的参数名称。
您在问题中显示的少量代码中已经完成的工作,即,将隐藏的表单字段设置为具有JavaScript变量的值,应允许该值被提交,然后在服务器端代码中进行访问。但是,很难看到为什么没有看到表单HTML的至少某些内容(特别是隐藏字段的定义)无法正常工作。看看如何提交也将有所帮助。 (我假设它正在提交:如果您试图使所有代码仅在服务器上运行,那么它将无法正常工作,因为服务器将JavaScript视为文档内容,因此不会同样,在看不到周围更多JSP的情况下,我无法真正告诉您如何使用该代码。)
更新:我发现自从我开始输入答案以来,您的代码已经被格式化。您不希望所有五行都在服务器上运行吗?呈现页面后,JavaScript代码仅在客户端浏览器上运行。 <% %>
之间的Java代码是在页面进入浏览器之前在服务器上执行的,因此根本无法访问JavaScript。 not11ѭ标记中没有的任何内容都将按原样发送到浏览器-servlet不会与之交互。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。