これが私がやろうとしていることの例です。
sessionScoped Bean 内
SessionBeanloadRecord(){
Do something
ViewScopedBean viewScopedBean = (ViewScopedBean) context.getApplication().evaluateExpressionGet(context, "#{viewScopedBean}", ViewScopedBean.class);
return viewScopedBean.viewScopedBeanLoadRecord();
}
viewScoped Bean 内
ViewScopedBeanloadRecord(){
Retrieve and populateFields
return "viewRecord.xhtml";
}
したがって、簡単に言うと、別のビュー (listRecords.xhtml) にある別の Bean からビュー スコープ Bean 内のメソッドを呼び出したいと思います。これを実行すると(標準のコマンドリンクを使用するだけで)、セッション Bean は期待どおりに動作し、viewScoped Bean が作成され、ViewScopedBeanloadRecord メソッドが呼び出されますが、viewScoped Bean が再作成されます(コンストラクターが再度呼び出されます)が、今回は ViewScopedBeanloadRecordは実行されず、ページは空白のフィールドで読み込まれます。
ビュー スコープ Bean は、同じビューにとどまるために null を返す (または void メソッドがある) 場合にのみ有効であることは理解していますが、その後、listRecords.xhtml から viewRecord.xhtml に移行して load メソッドを実行するにはどうすればよいでしょうか?
viewRecord.xhtml ビューにアクセスすると、(別のブラウザー ウィンドウで) より多くのレコードを同時に読み込む必要があるため、セッションでレコードを保持できません。
注: 会社のポリシーに基づいて、実際のコードを投稿することは許可されていないため、この例に限定されます。ごめん!
どんな助けでも大歓迎です!
ありがとう
エリック