我在显示“outputText”和“selectOneRadio”时遇到问题。
我想要的是:如果用户填写一个 inputText,则会显示一个 outputText 和一个 selectOneRadio。主要问题是它只有在我手动重新加载页面时才有效。
这是我的 xhtml 页面:
<h:form id="profil">
<h:outputText id="teffect1" styleClass="colonne" value="#{messages['content.effectif']}" />
<p:inputText id="iteffect1" value="#{effectifBean.efCadre}" validatorMessage="test" >
<p:ajax event="change" update=":profil:wrapper" listener="#{effectifBean.efCadre}" process="@form" />
</p:inputText>
<h:panelGroup id="wrapper">
<h:outputText rendered="#{effectifBean.shouldRenderCadre() eq true}" value="#{messages['content.type1']}" />
<p:selectOneRadio rendered="#{effectifBean.shouldRenderCadre() eq true}" >
<f:selectItem itemLabel="#{messages['content.option1']}" itemValue="1" />
<f:selectItem itemLabel="#{messages['content.option2']}" itemValue="2" />
<f:selectItem itemLabel="#{messages['content.option3']}" itemValue="3" />
</p:selectOneRadio>
</h:panelGroup>
</h:form>
还有我的光束:
public class EffectifBean {
private String efCadre;
public String getEfCadre() {
return efCadre;
}
public void setEfCadre(String efCadre) {
this.efCadre = efCadre;
}
public boolean shouldRenderCadre(){
if (efCadre != null && !efCadre.isEmpty() && !efCadre.equals("0")) {
return true;
} else return false;
}
}
谢谢您的帮助。