【问题标题】:unbound sessionScoped ManagedBean value未绑定 sessionScoped ManagedBean 值
【发布时间】:2013-02-06 19:22:00
【问题描述】:

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

【问题讨论】:

    标签: java jsf managed-bean session-scope


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-10
        • 2012-02-07
        • 1970-01-01
        • 1970-01-01
        • 2019-06-04
        • 1970-01-01
        • 2015-04-09
        • 1970-01-01
        相关资源
        最近更新 更多