我是新来的。我试图通过使用隐藏字段并提交表单来在会话中存储JavaScript变量:
function populateInput()
{
rowClicked = true;
var key = document.getElementById("key").innerText;
var value = document.getElementById("value").innerText;
document.getElementById("key2").value = key;
document.getElementById("value2").value = value;
var form = document.getElementById("output");
form.submit();
}
将由以下人员调用:
<html>
<tr id="row" onclick="populateInput()"
</html>
该对象是从一行中获取值,该行包含两列,一个键和一个值(存储在HashMap中),并将它们传递给另一个jsp,以便它们可以显示在两个文本框中(一个通过单击另一个jsp上的行来获取键和一个值。
我遇到的麻烦是在scriptlet中设置属性。我获取了td元素的innerText,并将其分配给JavaScript中的变量,然后将其传递给HTML DOM对象的值。
然后我想使用scriptlets(&lt;%request.setAttribute%&gt;)将其提交给另一个表单,但是如何?我意识到通过使用scriptlet,你使用的是Java代码,而不是HTML属性。
任何帮助都将受到高度赞赏。
以下是整个表格:
<%if (m != null){%>
<%for (Map.Entry<String, String> e : m.entrySet()){ %>
<tr id="row" onclick="populateInput()">
<td id="key"><%=e.getKey() %></td>
<td id="value"><%=e.getValue() %></td>
</tr>
<%} %>
<%} %>
我想获取td元素的innerText,将它们存储到vars,key和value中,然后将这些vars存储到以下值:
<input type="hidden" id="key2">
<input type="hidden" id="value2">
我遇到的麻烦是在scriptlet中使用request.setAttribute(“”,obj)设置隐藏字段的值,并将它们提交给另一个表单。
答案 0 :(得分:2)
您无法使用JavaScript设置会话,原因如Matt Ball的评论中所述。
你可以
AJAX
并使用POST/GET
方法发送所需数据,然后将其设置为会话。cookie
。答案 1 :(得分:1)
你不能直接从javascript存储会话变量,因为你只能在服务器端设置session的值。所以你需要一些AJAX从javascript与服务器通信然后操纵会话值。