0

SessionScopedManagedBeanがあります。このBeanのすべての値をリセットしたいと思います。JSF2.1.0-b03を使用しています

@ManagedBean(name = "myBean")
@SessionScoped
public class MyBean implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
}

これで、すべての値をnullにリセットするメソッドができました。しかし、私はこの解決策が好きではありません。

private void unboundValue() {
    name= null;
}

SessionScoped ManagedBeanから値をアンバインドするにはどうすればよいですか?

4

2 に答える 2

2

手動リセットは適切な方法のようです。1つのBeanだけでなく、セッション全体を無効にする場合は、を呼び出しますsession.invalidate()。Beanが1つだけの場合は、手動でフィールドをリセットしても問題ありません。

于 2013-02-21T13:03:23.330 に答える
0

SessionScopedmanagedbeanをExternalContextのセッションマップから削除できると思います。次回Beanがアクセスされたときに、デフォルト値で新しいBeanが作成されます。または、新しいBeanを作成してセッションマップに挿入し、古いBeanを置き換えます。もちろん、この手順は少しオーバーヘッドがありますが、resettetを取得する必要のある値がたくさんある場合は、それが1つの解決策になる可能性があります。

それ以外の場合は、すでに述べたような、ある種のreset / unboundValue()メソッドが必要になります。

于 2013-03-17T20:18:14.410 に答える