未绑定的sessionScoped ManagedBean值

时间:2013-02-21 12:54:04

标签: java jsf managed-bean session-scope

我有一个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中取消绑定值?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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