1. ホーム
  2. jsf

マネージドビーンにおけるViewスコープとRequestスコープの違い

2023-12-26 12:10:38

質問

ビュースコープとはどういう意味ですか?リクエスト スコープとの違いを理解するために、どなたか説明していただけませんか?

どのように解決するのですか?

A @ViewScoped ビーンは JSF のビューと同じ時間だけ存続します。それは通常、新しいGETリクエスト、またはナビゲーションアクションで始まり、そして、エンドユーザがビュー内の任意のPOSTフォームを null または void (に戻る(つまり と同じ ビューに戻る)。一度ページをリフレッシュするか、または非 null 文字列でない (空文字列でも!) ナビゲーション結果を返すと、ビュースコープが終了します。

A @RequestScoped ビーンは HTTP リクエストと同じ時間だけ生きています。したがって、それはすべてのリクエストの終了時に破棄され、すべての新しいリクエストで再作成され、それによってすべての変更されたプロパティを失うことになります。

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

も参照してください。