0

我有一个 SessionScoped ManagedBean。我想重置这个 bean 的所有值。我正在使用 JSF 2.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

手动重置似乎是正确的方法。如果您想使整个会话无效,而不仅仅是一个 bean,请调用session.invalidate(). 如果只是一个bean,手动字段重置是可以的。

于 2013-02-21T13:03:23.330 回答
0

我认为您可以从ExternalContext的会话映射中删除SessionScoped managedbean。下次访问 bean 时,将使用默认值创建一个新 bean,或者您只需创建一个新 bean 并将其插入会话映射中,从而替换的。当然,这个过程有点开销,但如果你有很多需要重新设置的值,那可能是一种解决方案。

否则,您将需要某种reset/unboundValue()方法,就像您已经说过的那样。

于 2013-03-17T20:18:14.410 回答