[我的设置:Java EE 6应用程序,包含EJB3.1,CDI / Weld,在Glassfish 3.0.1上运行的JSF2]
我刚刚在this page上阅读了Faces ProjectStage,这很酷。所以我在我的Web.xml中配置它,将其设置为Development:
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
现在我想从JSF视图访问ProjectStage(相应地设置特定UI组件的可见性)。
因此,我已经尝试了类似值为#{javax.application.projectStage}
的输出文本,这似乎是空的,我也尝试了许多其他变体,但没有成功。我甚至无法从Java代码中访问ProjectStage(然后我可以用Bean自己公开它)。
如何访问应用程序中的PROJECT_STAGE值?
答案 0 :(得分:26)
知道了。从视图中可以访问它:
<h:outputText value="Stage:#{facesContext.application.projectStage}"/>
在代码中,可以像访问它一样访问:
FacesContext.getCurrentInstance().getApplication().getProjectStage().toString()
答案 1 :(得分:2)
这可能是通过initParam
implicit object公开的。如果不这样做,请检查ExternalContext。
答案 2 :(得分:0)
您可以使用initParam预定义的JSF EL变量
来获取它#{initParam['javax.faces.PROJECT_STAGE']}