2012-02-10 23 views
0

AJAXからJSPページにパラメータを戻そうとしています。ここに私のサンプルコードは次のとおりです。AJAXからJSPページへのパラメータの受け渡し

JSファイル:

$(document).ready(function() { 
      $.ajax({ 
      type: "GET", 
      url: "URL...", 
      dataType: "xml", 
      success: function(xml) { 
       $(xml).find('Rowsets').each(function(){ 
          var x = $(this).find('Auto_Id').text() // Assign data from Auto_Id into variable x 
        document.form.y.value = x; // Pass the parameter back to the JSP page 
        }); 
       } 
    }); 
}); 

.jspファイル:

上記のコードは動作します - 私は、パラメータxを取得することができています。しかし、同じ.JSPページでxの値を次の形式にすることは可能ですか?

<%= session.getAttribute("x") %> 

あるいは、xの値を取得し、<% =%> javaのタグにそれを渡しますか?

これは、ページロード時にXMLからパラメータを取得し(AJAX経由で)、パラメータをJSPページに戻して、URLを動的に作成するために使用します(「http://」など)。 xyz & Param = "+ session.getAttribute(" x ")+" ")。 URLは、jspページのJavaタグ<%= ....%>で定義する必要があります。

答えて

1

スクリプトレットでJavascript変数を使用することはできません。あなたが知っていれば、JSPはサーバー側で実行され、AJAX呼び出しを行う前に実行されます。これを実現するには、コード内でいくつか微調整を行い、JSでURLを構築する必要があります。このように、

はJSPでは、あなたは

<input type='hidden' value='<%=dynamicallyCreatedURL%>' id='dynamicallyCreatedURL'/> 


は、URLを構築するためのAjax対応のコールバックで上記の隠された要素を読んで、持つことができます。任意の場所に構築されたURLを使用できます。ここで私はフォームアクションとして使用しました

$(xml).find('Rowsets').each(function(){ 
    var x = $(this).find('Auto_Id').text() // Assign data from Auto_Id into variable 
    document.form.y.value = x; // Pass the parameter back to the JSP page 

    //Here construct the URL and set as forma action 
    var dynamicallyCreatedURL = document.getElementById('dynamicallyCreatedURL').value+'?param='+x; 
document.form.action = dynamicallyCreatedURL; 
} 
+0

こんにちは、私はフォームで正しく私の値を見ることができます。しかし、動的に作成されたフォームの値を<%= =>の間で使用するJSPページに戻すことは可能ですか?私は<%= session.getAttribute( "dynamicallyCreatedURL")%>を試みましたが、運はありません。これも可能ですか? – user1130511

+0

JSPで 'dynamicallyCreatedURL'を取り戻すことはできません。スクリプトが実行される前にJSPが実行されるためです。 JSPはサーバー側で実行され、スクリプトはクライアント側で実行されるためです。 JSPでその変数が必要なのはなぜですか? –

+0

これはできなかったので、私はjquery/xsltを使ってデータをレンダリングすることにしました。ありがとう! – user1130511

関連する問題