是否有可能在扩展GenericFacesPortlet
的类中访问sesssion-scoped bean?
portlet是否知道FacesContext
?
我想达到什么目的?
我想通过serveResource()
方法提供文件。应该从实现方法getResourceContent()
的bean中检索文件的内容。
但不幸的是,我在致电null
时收到FacesContext.getCurrentInstance()
。
供您参考:我正在使用版本2.1.0.FINAL中的JBoss Portlet Bridge。
答案 0 :(得分:1)
FacesContext在GenericFacesPortlet中始终为null。 GenericFacesPortlet创建桥并初始化它。 Bridge实际上是创建FacesContext并执行JSF生命周期。从GenericFacesPortlet的角度来看,尚未创建FacesContext(null)。
为了达到你想要的效果,你可以从会话中获取bean。为此,您必须使用:
YourBean yourBean = (YourBean) request.getPortletSession().getAttribute("yourBeanName");
其中“yourBeanName”是您在定义YourBean时在faces-config.xml中使用的名称。
干杯!