Ответ 1
Это, как прокомментировал Саззадур,
#{constantsBean.constants.value}
должен работать. Свойство enum имеет правильный публичный getter для своего свойства value
. Однако вы также должны убедиться, что вы установили свойство constants
управляемого bean в желаемое значение перечисления. Вы не сделали этого в фрагменте кода, опубликованном до сих пор, и, таким образом, он остается null
. EL по дизайну ничего не печатает, если свойство (base) null
.
Здесь вы можете установить его:
@ManagedBean
@ApplicationScoped
public final class ConstantsBean {
private Constants constants = Constants.PAGE_LINKS;
public Constants getConstants() {
return constants;
}
}
Я бы переименовал свойство (и getter) на pageLinks
для лучшей самодокупимости.
#{constantsBean.pageLinks.value}
Альтернативой является использование OmniFaces <o:importConstants>
, основанный на вашей истории вопроса, вы уже знакомы с OmniFaces и, вероятно, уже используете его в вашем текущем проекте.
<o:importConstants type="com.example.Constants" />
...
#{Constants.PAGE_LINKS.value}
Таким образом, вам не нужно обертывать эту вещь в области приложения bean.