1

私はここでは新人です。隠しフィールドを使用してフォームを送信することにより、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 に格納されている) の 2 つの列を含む行から値を取得し、それらを別の jsp に渡して、2 つのテキスト ボックス (キーと値用に 1 つ) に表示できるようにすることです。 1 つは値)、別の JSP の行をクリックします。

私が抱えている問題は、スクリプトレット内で属性を設定することです。td 要素の innerText を取得し、それを JavaScript の変数に割り当ててから、HTML DOM オブジェクトの値に渡します。

次に、スクリプトレット (<%request.setAttribute%>) を使用してこれを別のフォームに送信したいのですが、どうすればよいでしょうか? スクリプトレットを使用することで、HTML 属性ではない Java コードを使用していることに気付きました。

どんな助けでも大歓迎です。

ここにテーブル全体があります:

<%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">

私が抱えている問題は、スクリプトレットで request.setAttribute("", obj) を使用して隠しフィールドの値を設定し、それらを他のフォームに送信することです。

4

2 に答える 2

2

マットボールのコメントで説明されている理由で、JavaScriptを使用してセッションを設定することはできません。

あなたはどちらかをすることができます

  1. メソッドを使用して必要なデータを使用AJAXして送信POST/GETし、それをセッションに設定します。
  2. または、を使用できますcookie
于 2012-10-04T03:32:08.500 に答える
1

セッションの値はサーバー側でしか設定できないため、javascript から直接セッション変数を保存することはできません。したがって、javascript からサーバーと通信してセッション値を操作するには、AJAX が必要です。

于 2012-10-04T03:44:40.717 に答える