Как получить доступ к javax.faces.PROJECT_STAGE из представления/внутреннего кода?
[Моя установка: приложение Java EE 6 с EJB3.1, CDI/Weld, JSF2, работающее на Glassfish 3.0.1]
Я только что прочитал о Faces ProjectStage на этой странице, что очень круто. Поэтому я настроил его в своем Web.xml, установив его в Development:
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
Теперь я хочу получить доступ к ProjectStage из представления JSF (настройка видимости определенных компонентов пользовательского интерфейса соответственно).
Поэтому я уже пробовал такие вещи, как выходной текст со значением #{javax.application.projectStage}
, который кажется нулевым, и я также пробовал много других вариантов, без успеха. Мне даже не удается получить доступ к ProjectStage из кода Java (тогда я мог бы разоблачить его сам с помощью Bean).
Как я могу получить доступ к значению PROJECT_STAGE в моем приложении?
Ответы
Ответ 1
Получил это. С точки зрения, к нему можно получить доступ, например:
<h:outputText value="Stage:#{facesContext.application.projectStage}"/>
В коде можно получить доступ, например:
FacesContext.getCurrentInstance().getApplication().getProjectStage().toString()
Ответ 2
Это, вероятно, отображается через неявный объект initParam
. В противном случае проверьте ExternalContext.
Ответ 3
Вы можете получить его с помощью предварительно определенной переменной JSF EL с помощью initParam
#{initParam['javax.faces.PROJECT_STAGE']}