在SessionListener
我想设置一些我想在 JSF@ManagedBean
中Session scope
显示的值。
问问题
1159 次
1 回答
3
您需要自己创建托管 bean 实例。
Bean bean = new Bean();
bean.setSomething(something);
event.getSession().setAttribute("bean", bean); // "bean" is managed bean name.
如果它已经存在于会话范围中,JSF 只会重用它(您会看到,JSF“会话范围”在 的属性所代表的范围内HttpSession
)。请注意,这种方式 any@PostConstruct
不会被调用,并且任何需要由@ManagedProperty
,@EJB
等注入的依赖项都不会被注入。你也需要自己做。
从设计技术上讲,更好的做法是仅在@PostConstruct
支持 bean 类本身的构造函数或方法中执行这项工作。
@ManagedBean
@SessionScoped
public class Bean {
@PostConstruct
public void init() {
// Here.
}
}
于 2012-07-02T13:53:45.177 回答