1

セッションベースのBeanを持つJSF1.2アプリがあります。このBeanは、データベースの検索に使用されます。私たちのホームページには、検索パラメーターのURLを作成するHTMLコントロールがいくつかあります。これにより、ブラウザーのURLがJSPに設定されます。Beanはセッションベースであるため、ホームページから初めてアクセスするときは、パラメータが正しく渡されます。ただし、後続のアクセスは、Bean内の関数が実行されないため、パラメーターが無視されることを意味します。Beanのinit関数を強制的にリロードするための最良の方法は何ですか?

4

1 に答える 1

2

これは、セッションスコープのBeanで完全に予想される動作です。HTTPセッションに保存され、HTTPセッションが存続し、すべてのHTTPリクエストで再作成/再初期化されない限り再利用されます。すべてのHTTPリクエストでBeanを再作成/再初期化する場合は、代わりにリクエストスコープに配置する必要があります。

ただし、Beanがリクエストスコープデータとセッションスコープデータの混合を表す場合は、Beanを2つの別々のBeanに分割する必要があります。リクエストスコープデータ用のリクエストスコープデータとセッションスコープデータ用のセッションスコープ1です。リクエストスコープのものを使用<managed-property>して、セッションスコープのものをリクエストスコープのもののプロパティとして挿入できます。このようにして、セッションスコープのデータにアクセス/操作する必要があるリクエストスコープのアクションにアクションを配置できます。

参照:

于 2013-03-26T11:53:37.623 に答える