为了检查JSF中的if else条件,我尝试了应用渲染。(ref:有条件地显示JSF组件)
这部分是我的JSF index.html
<p:commandButton value="Update Hidden Label" action="#{carForm.updateBool}" />
<h:outputText value="Text A" />
<h:outputText value=" Text B" rendered="#{carForm.booleanValue}" />
这是一个java类
private boolean booleanValue;
public boolean isBooleanValue() {
return booleanValue;
}
public void setBooleanValue(final boolean booleanValue) {
this.booleanValue = booleanValue;
}
public void updateBool() {
booleanValue = true;
}
当我尝试点击"更新隐藏标签"时,它会将java类中的布尔值更新为true,但是在index.html页面中"文本B"仍然没有出现。
您还需要使用<h:outputText value=" Text B" rendered="#{carForm.booleanValue}" />
更新页面片段
您可以使用<p:panel id="textPanel"></p:panel>
并将您的代码放在那里。
将update
参数加到值为textPanel
的p:commandButton
上,如update="textPanel"
。
<p:panel id="textPanel">
<p:commandButton value="Update Hidden Label" action="#{carForm.updateBool}" update="textPanel" />
<h:outputText value="Text A" />
<h:outputText value=" Text B" rendered="#{carForm.booleanValue}" />
</p:panel>