に私は私のプロジェクトでは、以下のような問題があります。私たちは、次のように構成された2つの管理対象Beanを持ってJSF SessionScoped managedBeanがViewScoped managedBeanと連動
を:
@ManagedBean
@SessionScoped
public class SessionBean {
private PersonnelFile personnelFile; // + getters/setters
}
@ManagedBean
@ViewScoped
public class ViewBean {
@ManagedProperty("#{sessionBean}")
private SessionBean sessionBean;
public void selectPersonnel() {
sessionBean.getPersonnelFile().setPerson(new Person());
}
}
これは、すべてのコードではなく、それはあなたのsitatutionの一般的なアイデアを与える:セッションオブジェクト
- SessionScoped豆ビュー関連のオブジェクトとSessionScopedのBeanへの参照を保持しているwScoped豆
問題が今ある:私は私のビューにアクセス
- は、私が同じビューにいくつかのポストバックを作ります毎回ビューに戻ってきます..これまでのところとても良い
- ある時点で、SessionScoped Beanのセッションオブジェクトをビューからの情報で設定しました。私は自分のビューを残しました...これまでのところとても良い
- 今、私がthに戻ると(期待どおり)新しいViewScoped Beanインスタンスを作成し、SessionScoped Beanを戻します(ManagedPropertyアノテーションのため)
- これをデバッグすると、SessionScoped Beanへの参照が同じであることがわかりますそれは私ドンので、しかし、私は以前にSessionScoped豆に設定されたオブジェクトが、彼は私がSessionScoped豆でこのオブジェクトをリセットすることはありません、そのオブジェクト
- についてのセッション情報を「失われた」という意味、
null
になってきた同じオブジェクト - ですそれが間違っていた可能性がある場所を参照してください...
詳しい説明が必要な場合やあなたは私にこの質問をより良く言いたい、私に知らせるか、編集ボタンを使ってもらいたいです!
* *「私はSessionScoped Bean内のこのオブジェクトをリセットすることはありません」...
だから、私の問題は固定されているが、解決策が理想的である場合、私はよく分かりません。確かにプロパティを変更したコード内に何かがあったに違いない。魔法はありません。これまでの情報では、潜在的な原因を指摘することはできません。デバッガの 'private Person person;'行に変数watch breakpointを置く必要があります。次に、変更しようとしているスタックを調べることができます。 – BalusC私はこの問題を発見したかもしれないと思います。私たちのweb.xmlファイルでは、次の設定を使用していた。 '<コンテキスト-param>の javax.faces.STATE_SAVING_METHODサーバー PARAM値> コンテキスト-param>のJSF' –
うーん、インプット/バージョンは正確に使用していますか? – BalusC