通过session.getAttribute在sessionscope中获取bean的实例

时间:2012-10-15 12:12:31

标签: jsf-2 jboss-weld servlet-3.0

在我的(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("???");

我应该为'???'提供哪个值

2 个答案:

答案 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中明确地放置一个键来解决了这个问题。现在它可以工作

相关问题