Какова цель визуализируемого атрибута в f:viewAction?
Описание rendered
атрибут f:viewAction
не ясно в официальной документации.
Я думал, что если оно содержит выражение, которое оценивается как ложное, action
выражение не будет выполнено, как в следующем примере:
<f:viewAction
action="#{javax.enterprise.context.conversation.begin()}"
rendered="#{javax.enterprise.context.conversation.isTransient()}"
/>
Но action
всегда выполняется независимо от того, что rendered
Атрибут оценивается как.
Так какова его цель?
1 ответ
Решение
Вы, вероятно, жертва времени оценки rendered
приписывать. Вы безопаснее, используя if
атрибут viewAction
как ваша единственная цель - ваш вариант использования:
<f:viewAction action="#{javax.enterprise.context.conversation.begin()}"
if="#{javax.enterprise.context.conversation.isTransient()}"/>
if
Атрибут выполняет действие просмотра, только если он оценивается как true
и это ново с JSF2.2
Связанные с: