【发布时间】:2012-07-02 21:11:42
【问题描述】:
在SessionListener 中,我想设置一些@ManagedBean 和Session scope 的值,我想在JSF 中显示这些值。
【问题讨论】:
标签: session jsf servlets listener managed-bean
在SessionListener 中,我想设置一些@ManagedBean 和Session scope 的值,我想在JSF 中显示这些值。
【问题讨论】:
标签: session jsf servlets listener managed-bean
您需要自己创建托管 bean 实例。
Bean bean = new Bean();
bean.setSomething(something);
event.getSession().setAttribute("bean", bean); // "bean" is managed bean name.
如果它已经存在于会话范围中,JSF 只会重用它(你看,JSF“会话范围”在HttpSession 的属性所代表的掩护下)。请注意,这样任何@PostConstruct 都不会被调用,任何需要@ManagedProperty、@EJB 等注入的依赖项都不会被注入。你也需要自己做。
从设计技术上讲,最好只在构造函数或支持 bean 类本身的 @PostConstruct 方法中执行这项工作。
@ManagedBean
@SessionScoped
public class Bean {
@PostConstruct
public void init() {
// Here.
}
}
【讨论】: