在我的(JSF,Servlet 3.0)会话范围内,有类的实例。如何使用sessionscope中提供的名称获取类的实例?
例如,在我的会话中有一个MyBean实例:
classes-ManagedBean-class com.MyBean=Bean: Managed Bean [class com.MyBean] with qualifiers [@Any @Default @Named]; Instance: com.MyBean@40a6d41f
在java代码中,我想检索MyBean的实际实例:
HttpSession session = us.getHttpSession();
MyBean mybean = (MyBean) session.getAttribute("???");
我应该为'???'提供哪个值
答案 0 :(得分:0)
这就是你所追求的:
FacesContext context = FacesContext.getCurrentInstance();
MyBean mybean = (MyBean) context.getExternalContext().getSessionMap().get("myBean");
请注意,myBean是托管bean的名称
例如@ManagedBean(name = "myBean ")
,如果未指定(name = "myBean ")
,则默认值与类名相同,小写的第一个字母
答案 1 :(得分:0)
以上是从SessionMap中检索的。我通过再次在sessionmap中明确地放置一个键来解决了这个问题。现在它可以工作