JSON形式でブラウザに情報を送り返し、情報に基づいてJavaスクリプトにページをレンダリングさせることを考えているアプリに取り組んでいます。同様に、更新をブラウザーからマネージド Bean に JSON 形式でプッシュしたいと考えています。JSF + Primefaces でこれを達成できますか?
JSON の使用を検討している理由は、やり取りされるデータの量を制限するためです。
JSON形式でブラウザに情報を送り返し、情報に基づいてJavaスクリプトにページをレンダリングさせることを考えているアプリに取り組んでいます。同様に、更新をブラウザーからマネージド Bean に JSON 形式でプッシュしたいと考えています。JSF + Primefaces でこれを達成できますか?
JSON の使用を検討している理由は、やり取りされるデータの量を制限するためです。
GsonGsonユーザーガイドの使用をお勧めします
サーバーからjsonを作成/送信/解析する方法の簡単な例を次に示します。
あなたの豆でこのようなことをしてください
Gson gson = new Gson();
myJsonString = gson.toJson(someObjectOrListOfObjects);
xhtmlで
<h:inputHidden id="my_json_data" value="#{myBean.someObjectOrListOfObjects}" />
jsファイルで
var data = $('input[id$="my_json_data"]').val();
data = jQuery.parseJSON(data); //to parse it, use dev tools/fire bug to add data variable to watch and observe it
XML/HTML の代わりに JSON を渡す独自の JSF 実装を展開する代わりに、送信されるデータを最小限に抑える他の方法を提案します。
ダイアログ、タブビュー、データテーブルなどを動的にします。
PrimeFaces には、特定の要素を動的にするオプションがあります。これは、ユーザーがこれらを要求したときに読み込まれることを意味します。これにより、ページの読み込みが増加する可能性があります。
小さいフォームを使用する
but one を使用する多くのユーザーを見かけます。<h:form>
すべてがフォーム内にある場合、フォームを必要とする要素の周りにフォームを配置することを忘れないからです。これは完全に間違っており、ページの関連部分だけではなく、すべてをフォームに投稿することになります。必要に応じてフォームを使用し、送信されているものを firebug などで再確認してください。
クライアント側の検証を使用する
クライアント側の検証を使用して、ユーザーが間違った入力を送信するのを防ぎます。このようにして、間違ったデータが送受信されることはありません (永遠に)。良い副作用は、ユーザーが迅速な「応答」を受け取ることです。注: これは、サーバー側の検証を削除できるという意味ではありません。セキュリティ上の理由から、サーバー側の検証が必要です。