web-dev-qa-db-ja.com

マネージドBeanのViewスコープとRequestスコープの違い

ビュースコープとはどういう意味ですか?誰もそれについて説明できるので、それがリクエストスコープとどのように異なるかを理解できますか?

65
Maddy

@ViewScoped Beanは、JSFビューとまったく同じ長さで存続します。通常、新しいGETリクエストまたはナビゲーションアクションで開始され、エンドユーザーがビュー内のPOSTフォームをnullまたはvoid(したがってsameビューに戻ります。)ページを更新するか、 null文字列(空の文字列でも!)ナビゲーションの結果、ビュースコープは終了します。

@RequestScoped Beanは、HTTPリクエストとまったく同じ期間存続します。したがって、すべてのリクエストの終わりまでにガベージ化され、新しいリクエストごとに再作成されます。これにより、変更されたすべてのプロパティが失われます。

したがって、@ViewScoped Beanは、Ajaxリクエスト全体で(変更された)ビュー状態を記憶する必要があるリッチAjax対応ビューで特に便利です。 @RequestScopedがAjaxリクエストごとに再作成されるため、変更されたすべてのビューステートを記憶できません。 @ViewScoped Beanは、@SessionScoped Beanのように、同じセッション内の異なるブラウザータブ/ウィンドウ間でデータを共有しないことに注意してください。すべてのビューには、固有の@ViewScoped Beanがあります。

こちらもご覧ください:

136
BalusC