如何从视图/内部代码访问javax.faces.PROJECT_STAGE?

时间:2010-08-03 15:00:33

标签: java jsf jsf-2

[我的设置: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值?

3 个答案:

答案 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']}