2012-03-14 212 views
1

私はこのコードスニペットを持っている::私は何をしたいのかスクリプトレットからJavascriptに変数を渡す。

<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); 

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

+1

「temp1」の値を非表示フィールドに設定し、Javascriptでこの非表示フィールドの値にアクセスしてください。 – Lion

+0

ライオンのやり方は? –

+1

' ">'これで、この隠されたフィールドの値を以下のようなJavascript関数で得ることができます:document.getElementById( 'tempValue')。value; ' – Lion

答えて

5

次の操作を実行gotoa()内の変数temp1の値が必要になります。

<% 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に値を割り当てます。そして、scriptletを使ってvalue = temp1の隠し入力コンポーネントでJSPをレンダリングします。検証する場合は、生成されたHTMLのソースを表示するだけで、入力変数の値が変数に等しいことがわかります。

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

+0

これについて1つの質問は、同じ隠しフィールドから値を取得して、同じフィールドに再度設定しようとしていますか? – Sundhar

0

まず要求からの設定となって)私はこの

1で観察されているもののことカップルを言わせてページの提出を必要とするそれ以外の場合は、パラメータに

2使用できません)スクリプトレットとJSPスクリプトレットのcompiliationは常に起こることから、さまざまな方法でコンパイル今最初

(それはヘッダ本体またはフッターある関係なく)私たちは、これが

1)の代わりにEJBオブジェクトを使用して行うことができますどのようにするための提案リクエストオブジェクトの

2)隠し入力タグを使用して必要な値を取得し、getterメソッドを 'likeのような入力タグの値に割り当てます。変更が必要な場合は、フォームを再ロードする必要がない場合は、ページをリロードせずに値だけを変更するajaxメソッドを参照してください

関連する問題