0

初め:

2 つのマネージド Bean があります。

ビーンA:

  • @ViewScope
  • @PostConstruct で初期化された、いくつかのセッション値に応じた遅延読み込みデータテーブルが含まれています

ビーンB:

  • @ViewScope
  • Bean A で使用されるセッション値の変更

私は次のことを行います;

  • Bean Bを使用してJSFサイトでセッションデータを設定する
  • Bean A を使用する jsf サイトのロード
  • Bean Bで他のセッションデータを設定する
  • Bean A を使用する jsf を再度ロードする

問題は次のとおりです。

Bean A を使用して JSF サイトを再度ロードすると、データテーブルを初期化する PostConstruct は再度ロードされません。

ビュー スコープを使用すると、別の JSF サイトをナビゲートすると ManagedBean が破棄されると思いました。

この問題を理解するのを手伝ってください。私は何を間違っていますか?

4

1 に答える 1

0

はい。ビュー スコープは、同じビューにとどまっている限り、そのまま維持する必要があります。

ただし、過去のバージョンの JSF では、PostConstruct に関連するものを含め、このスコープには多くの問題がありました。現在使用しているバージョンは何ですか?アプリケーションの起動時にログに記載する必要があります。

于 2012-11-12T10:31:47.567 に答える