2009-04-30 12 views
0

JavaScriptファイルにJSオブジェクトがあります。このオブジェクトをJSPページに渡す必要があります。ページはこのオブジェクトを取り出して処理します。どうしたらいいですか?JSオブジェクトをJSPページに送信

答えて

0

ウェブブラウザからHTTPサーバーに他のデータを取得するのと同じ方法です。

あなたがのAJAXスタイルでこれをやっている、あなたが最初に解決する必要がある問題のカップルがありますが、XMLHttpRequestの/など

0

を使用して/ウィンドウの位置を設定/フォームを提出することによって、HTTPリクエストでそれをエンコード要求?これはフォーム提出ですか? JSONオブジェクトを前後に渡しているクライアント/サーバー間のページセッション内で進行中の対話が行われることになりますか?

フォーム提出の簡単なケースに取り組むと、残りのケースがこの基本ケースの「拡張」にすぎないようにすることができます。あなたには、いくつかのフィールドにデータを提出するいくつかのフォームを持っていると言う:

<form name='my_form' id='my_ford_id'> 
    <input type='hidden' name='my_input_field' /> 
</form> 

その後、いくつかの時点で時間に、あなたが実行するコードの部分を持って、あなたのJSONオブジェクトを持っている

function myFunction() { 
    var json_data = getJsonData(); 
    document.forms['my_form']['my_input_field'].value = json_data; 
    document.forms['my_form'].submit(); 
} 

が必要になりますJSP側ではこのデータをフォームフィールド内のJSON文字列として受け取ります。このフィールドを処理する必要がある場合は、JSONライブラリを使用できると仮定します。コードは次のようになります。

<% 
    String myInputField = request.getParameter("my_input_field"); 
    if(myInputField != null) { 
    try { 
     JSONObject myObject = new JSONObject(myInputField); 
    } 
    catch(JSONException e) { 

    } 
    } 
%> 

「AJAX」スタイルのインタラクションが必要な場合は、そのようなリクエストをページで行うことになりますが、基本的にはデータを送信する元の問題に戻ります。この例ではフォームとJSPを使用しているので、エンコードについて心配する必要はありません。ブラウザー/サーバーはあなたのために世話をします。

+0

ここではJSONObjectを取得できます。サードパーティのAPIです –

+0

http://json-lib.sourceforge.net/ – cjstehno

+0

正確な情報源はおそらく次のとおりです:http://json.org/java/ – mellamokb

-2

"JSON"サイトは、JSp/javaでJsonオブジェクトを管理するのに役立ちます。 JavaScriptから取得した文字列をjsonオブジェクトに変換する必要があります。それを簡単に管理します。あなたは、変数を送信する場合

0

あなたはサーブレットオブジェクトのJSONを送信値=「getCountries」

var option={ 
     "action":"getCountries" 
    }; 
$.getJSON('YourServlet',option, function() { 
    //hadle the result returned by servlet 
}); 

と「アクション」、例えば、フォームの送信によって送信されたデータを受信するのと同じ方法でそれを受け取りますdefualtメソッドがGETで、あなたは私たちがサーブレットからJavaScriptに結果を返す方法を通常のリクエスト

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    String action = request.getParameter("action"); 
    if (action != null) { 
     if (action.equals("getCountries")) { 

        List coutries= getAllICountries(request); //get the countries 
        String json = new Gson().toJson(coutries); 
        response.setContentType("application/json"); 
        response.setCharacterEncoding("utf-8"); 

        response.getWriter().write(json); 
        return; 
      } 
    } 

お知らせを扱うようあなたがリクエストを処理するサーブレットでは、我々はJSONオブジェクトを返します。

関連する問題