我的view-state
中有一个布尔变量:
<set name="flowScope.render" value="false" type="java.lang.Boolean" />
现在我使用此变量
渲染commandButton
<p:commandButton value="Show Dates"
rendered="#{!render}"
update="table1,buttons" />
现在我想通过单击此commandButton来更改变量的值。我尝试了setPropertyActionListener
,但它不起作用:
<p:commandButton value="Show Dates" rendered="#{!render}" update="table1,buttons">
<f:setPropertyActionListener value="true" target="#{render}" />
</p:commandButton>
我对如何更改值没有太多了解。那怎么可能呢?
答案 0 :(得分:1)
现在我明白了。
我必须与transitions
合作。在设置变量的同一view-state
中,我定义了两个transitions
:
<transition on="rendertrue">
<set name="flowScope.render" value="true" type="java.lang.Boolean" />
</transition>
<transition on="renderfalse">
<set name="flowScope.render" value="false" type="java.lang.Boolean" />
</transition>
我不改变存在变量的值,我只是覆盖它。如果这是最好的或解决方案,我不知道,但它确实有效
现在,我使用transition
中的action
语句调用特定的commandButton
:
<p:commandButton value="Show Date"
rendered="#{!render}" update="table1,buttons"
action="rendertrue" />
<p:commandButton value="Hide Date"
rendered="#{render}" update="table1,buttons"
action="renderfalse" />