Какова цель визуализируемого атрибута в 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

Связанные с:

Другие вопросы по тегам