我在托管 bean 中有一个成员变量,该成员变量通过 getter 和 setter 绑定到 XHTML 中的组件。如果我在函数调用中设置成员变量,当这个成员变量的getter被触发时,这个成员变量仍然会保持旧值。我可以知道如何更新这个成员变量,以便组件可以获得最新的更新值吗?
管理 bean:
@ManagedBean(name = "myBean")
@SessionScoped
public class MyBean {
public boolean show = false;
/** getter and setter **/
public void theFunc() {
this.show = true;
}
}
XHTML 代码
<h:panelGroup id="Panel_1" rendered="#{myBean.show == true}">
...
Some rubbish here
...
</h:panelGroup>
<h:panelGroup id="Panel_2">
<h:commandLink action="#{myBean.doFunc}">
<f:ajax event="action" render="Panel_1"/>
<h:outputText value="XX" />
</h:commandLink>
</h:panelGroup>
在此示例中,show
即使theFunc()
已设置为 true,变量也显示为 false。
2012 年 10 月 6 日更新 我已删除 commandButton 并替换为 commandLink,我认为它在使用方面应该没问题。