Java 从GenericFacesPortlet获取会话范围的bean

Java 从GenericFacesPortlet获取会话范围的bean,java,session,jsf,portlet,jsf-1.2,Java,Session,Jsf,Portlet,Jsf 1.2,在扩展GenericFacesPortlet的类中访问session作用域bean是否可能 portlet是否知道FacesContext 我想要实现什么 我想通过serversource()方法提供一个文件。应该从实现方法getResourceContent()的bean中检索文件内容 但不幸的是,调用FacesContext.getCurrentInstance()时,我得到了null 供您参考:我使用的是2.1.0.FINAL版。在GenericFacesPortlet中,FacesC

在扩展
GenericFacesPortlet
的类中访问session作用域bean是否可能

portlet是否知道
FacesContext


我想要实现什么

我想通过
serversource()
方法提供一个文件。应该从实现方法
getResourceContent()
的bean中检索文件内容

但不幸的是,调用
FacesContext.getCurrentInstance()
时,我得到了
null



供您参考:我使用的是2.1.0.FINAL版。

在GenericFacesPortlet中,FacesContext始终为空。GenericFacesPortlet创建网桥并对其进行初始化。桥实际上是创建FacesContext并执行JSF生命周期。从GenericFacesPortlet的角度来看,尚未创建FacesContext(空)

为了实现您想要的,您可以从会话中获取bean。为此,您必须使用:

YourBean yourBean = (YourBean) request.getPortletSession().getAttribute("yourBeanName"); YourBean YourBean=(YourBean)request.getPortletSession().getAttribute(“yourBeanName”); 其中“yourBeanName”是定义bean时在faces-config.xml中使用的名称


干杯

谢谢,我试试看。