f:viewAction上渲染属性的目的是什么?

时间:2014-07-30 12:47:06

标签: jsf jsf-2.2

官方documentation中不清楚rendered f:viewAction属性的说明。

我在想,如果它包含一个评估为false的表达式,action表达式就不会像下面的例子那样执行:

<f:viewAction
    action="#{javax.enterprise.context.conversation.begin()}"
    rendered="#{javax.enterprise.context.conversation.isTransient()}"
/>

但无论action属性的评估结果如何,rendered始终都会被执行。

那么它的目的是什么?

1 个答案:

答案 0 :(得分:1)

您可能是评估rendered属性时间的受害者。使用if的{​​{1}}属性更安全,因为它的唯一目的是您的用例:

viewAction

<f:viewAction action="#{javax.enterprise.context.conversation.begin()}" if="#{javax.enterprise.context.conversation.isTransient()}"/> 属性仅在评估为if时执行视图操作,并且在JSF2.2中是新的

相关: