0

このリンクhttps://blogs.oracle.com/enterprisetechtips/entry/post_redirect_get_and_jsfを使用してJSFアプリでPRGを実行する方法を理解しようとしていました が、どういうわけか3つの項目で混乱しました。

  1. ブログから、PRGであるPOSTメソッドの代わりに、ページをレンダリングするときに302とGETリダイレクトを発行していることがfirebugからわかります。ブログでの唯一の変更は、Beanのスコープがセッションスコープからリクエストスコープに変更されたことです。したがって、このリンクは、すべてのマネージドBeanがリクエストスコープレベルであることを示唆していますか?実行しているサンプルアプリを確認し、ViewScopedBeanとSessionScopeBeanを多用しています。

  2. ViewParametersの有用性は何ですか?URLにクエリ文字列パラメータを追加するとしたら、セキュリティ上の問題はありませんか?私は実際に、そのような機能をどこで使用できるかについてのユースケースを見つけています。

  3. 私が行っているトランザクションがADD/EDIT / DELETEなどのトランザクションの性質を実行しない場合でも、POSTリクエストであるJSFナビゲーションを使用するだけでよいのでしょうか。新しいページに移動したかっただけです。

ありがとう

4

1 に答える 1

1

このリンクは、すべてのマネージド Bean が Request Scope レベルにあることを示唆していますか? 私が行っているサンプルアプリをチェックし、ViewScoped および SessionScope Bean を多用しています。

Bean のスコープは、PRG 自体には関係ありません。Bean が保持するデータの存続期間のみが重要です。適切な Bean スコープを選択する方法も参照してください。


ViewParameters の有用性は何ですか? URL にさらにクエリ文字列パラメーターを追加するとしたら、それはセキュリティ上の問題ではありませんか? 私は実際に、そのような機能をどこで使用できるかについてユースケースを見つけています。

にはincludeViewParams、 で手動で指定したパラメータのみが含まれます<f:metadata><f:viewParam>。元のクエリ パラメータがすべて含まれるわけではありません。これは、PRG 自体には必要ありません。それを使用するかどうかは、具体的な機能要件に依存します。この記事は、すべてのビュー パラメーターをリダイレクト URL にコピーできることを示しているだけです。これは、一部の機能要件で役立つ/必須である可能性があります。<f:metadata>、<f:viewParam>、および <f:viewAction> は何に使用できますか?も参照してください。


新しいページに移動したかっただけです。

<h:link>の代わりに使用し<h:commandLink>ます。

<h:link value="Go to next.xhxml" outcome="next" />

h:commandLink の代わりに h:outputLink を使用する必要がある場合も参照してください。

于 2012-04-25T13:43:08.580 に答える