2011-12-26 3 views

答えて

1

最も簡単方法は、JSFは、同じビュー内のJS変数としてJSONオブジェクトの文字列表現を出力させることである。

<script>var users = #{bean.usersAsJson};</script> 

正しい方法は、しかし、ですこれには完全なJSON Webサービスを使用してください。 JSFはコンポーネントベースのMVCフレームワークであり、JSON Webサービスではありません。そのため、Java EEスタックはJAX-RS APIを提供します。長い答えの短い:Servlet vs RESTful。これは、jQueryやAjaxリクエストを送信し、基本的にonelinerでHTML DOMツリーを操作できるJSフレームワークと組み合わせて使用​​することをお勧めします。 JSFと組み合わせて使用​​する場合は、純粋なプレゼンテーションにのみ使用できることを考慮する必要があります。

0

ブラウザは要求しなければなりません。つまり、その文字列は要求処理チェーンのどこかにある必要があります。その文字列への応答を設定すると、ブラウザはそれを受け取ります。

+0

お願いします。 –

+0

サーバーから通常のHTMLページをどのように配信しますか? – Nicolas78

+0

私はJSF 2とjavascriptを使用しています。 –

2

HTTPでは、サーバーはクライアント側に何も送信しませんでした。クライアント側は要求を使用してリソースを要求し、応答にはリソースが含まれます。

JavaScript関数がサーバーにAJAX要求を送信してください、と(応答ライターにJSON文字列を書き込むことによって)応答でこのJSON文字列を使用してサーバーの応答を行います。

は、JavaScriptからJSON文字列を取得するためにhttp://api.jquery.com/jQuery.getJSON/を参照してください。サーバーコードは、

response.getWriter().print(jsonText); 
+0

リファレンスまたはコードスニペットしてください。 –

+0

しかし、私はジャバスクリプトを使用して、どのように正常なJSでそれを達成するためにですか? –

+0

http://www.w3schools.com/ajax/default.aspおよびhttp://www.json.org/js.htmlをお読みください。自分の好きなことを行い、jQueryやPrototypeなどのJavaScriptライブラリを使用して、すべてのブラウザ間の問題を処理します。ネイティブAJAXはお尻の痛みです。 –

0

と簡単なものです。私はあなたが応答をjson文字列としたいと思います。 これは、jQuery関数getJSONで行うことができます。 これはjson文字列を取得し、intiハッシュを解析するので、必要に応じて処理する必要があります。 API documentation

0

jsonオブジェクトをレスポンスに送信し、javascriptで応答を取得します。 jsonオブジェクトを評価するためにeval関数を使用します。

var jsonObject = eval('(' + request.responseText + ')'); 
関連する問題