2

私はこのコードスニペットを持っています::

<script type="text/javascript">
function gotoa(){
    <%!
    public void a(){
     String temp1;
    PopulateTextbox obj = new PopulateTextbox();
    temp1 = obj.method();
    request.setAttribute("variable", temp1);
    }
    %>


var myVar = <%=request.getAttribute("variable")%>
}
</script>

私がやりたいことは、JavaScript 関数 gotoa() で変数 temp1 の値を取得することです。この特定のコードでは、無効なリクエストのエラーが発生しています

request.setAttribute("variable", temp1);

私の主な目的は、ボタン クリック イベントで関数 a() を呼び出して、スクリプトがコードを再実行し、新しい値が変数 temp1 に渡されるようにすることです。これは gotoa() に渡され、データ グリッドのソースとして機能します (このコードではありません)。基本的に、ボタンのクリックでグリッドを更新したい。私は正しい方法でやっていますか?助けてください。ありがとう。

4

2 に答える 2

6

temp1内部で変数の値が必要な場合gotoa()は、次のようにします。

<%  String temp1; // Store value in temp1 variable for later use
    PopulateTextbox obj = new PopulateTextbox(); 
    temp1 = obj.method();
%>
<script>
function gotoa(){ 

    var temp1Val = document.getElementById("hiddenTemp1").value;
    // put your logic here
    document.getElementById("hiddenTemp1").value = tempVal1;
}
</script>
<body>
<form action="otherPage.jsp">
    <!-- use the value of temp1 variable -->
    <input type="hidden" name="hiddenTemp1" id="hiddenTemp1" value="<%=temp1%>">
    <input type="button" onclick="gotoa()" value="GotoA">
    <input type="submit" value="Submit New Value">
</form>
</body>

まず、値を変数 temp1 に割り当てます。次に、スクリプトレットを使用して、value=temp1 の Hidden Input コンポーネントで JSP をレンダリングします。確認したい場合は、生成された HTML のソースを表示するだけで、input hidden の値が変数と同じであることを確認できます。

フォームが送信されると、hiddenTemp1 の値が Request で使用可能になります。この隠しコンポーネントの値を変更する場合は、コンポーネントに値を戻すことができます。

于 2012-03-14T09:46:43.567 に答える