セッションベースのBeanを持つJSF1.2アプリがあります。このBeanは、データベースの検索に使用されます。私たちのホームページには、検索パラメーターのURLを作成するHTMLコントロールがいくつかあります。これにより、ブラウザーのURLがJSPに設定されます。Beanはセッションベースであるため、ホームページから初めてアクセスするときは、パラメータが正しく渡されます。ただし、後続のアクセスは、Bean内の関数が実行されないため、パラメーターが無視されることを意味します。Beanのinit関数を強制的にリロードするための最良の方法は何ですか?
質問する
998 次
1 に答える
2
これは、セッションスコープのBeanで完全に予想される動作です。HTTPセッションに保存され、HTTPセッションが存続し、すべてのHTTPリクエストで再作成/再初期化されない限り再利用されます。すべてのHTTPリクエストでBeanを再作成/再初期化する場合は、代わりにリクエストスコープに配置する必要があります。
ただし、Beanがリクエストスコープデータとセッションスコープデータの混合を表す場合は、Beanを2つの別々のBeanに分割する必要があります。リクエストスコープデータ用のリクエストスコープデータとセッションスコープデータ用のセッションスコープ1です。リクエストスコープのものを使用<managed-property>
して、セッションスコープのものをリクエストスコープのもののプロパティとして挿入できます。このようにして、セッションスコープのデータにアクセス/操作する必要があるリクエストスコープのアクションにアクションを配置できます。
参照:
于 2013-03-26T11:53:37.623 に答える