Ando desesperado porque no se por qué no me funciona el RENDERED en JSF que cambio por AJAX.
En la JSF tengo:
Código:
Con el selectOneMenu consigo cambiar los outputLabel pero no consigo ocultar los outpulabel (id="hasAdaptationText") y inputText (id="hasAdaptation").<f:view> <h:form> <p:panel header="#{msgs.createTitlePage}" styleClass="cajamediana"> <h:panelGrid columns="2" cellpadding="10"> <p:outputLabel value="#{msgs.typeOfObject}"/> <p:selectOneMenu value="#{drdObjectMB.typeOfObjectSelected}"> <f:selectItem itemValue="#{msgs.selectOriginal}" itemLabel="#{msgs.selectOriginal}"/> <f:selectItem itemValue="#{msgs.selectAdapted}" itemLabel="#{msgs.selectAdapted}"/> <p:ajax event="change" update="fileNameOr,descriptionFile,hasAdaptationText,hasAdaptation" listener="#{drdObjectMB.updateOutputLabels}"/> </p:selectOneMenu> <p:outputLabel id="fileNameOr" value="#{drdObjectMB.createNameFileText}"/> <p:inputText value="#{drdObjectMB.fileName}" size="25"> </p:inputText> <p:outputLabel id="descriptionFile" value="#{drdObjectMB.descriptionFileText}"/> <p:inputTextarea value="#{drdObjectMB.description}" rows="2" cols="25" /> <p:outputLabel id="hasAdaptationText" value="#{msgs.createHasAdaptation}" rendered="#{drdObjectMB.hideFields}"/> <p:inputText id="hasAdaptation" value="#{drdObjectMB.hasAdaptation}" rendered="#{drdObjectMB.hideFields}" size="25"> </p:inputText>
La clase java drdObjectMB con la función updateOutputLabels cambia los textos de los outputlabel y el campo boolean hideFields a TRUE y FALSE dependiendo del valos del selectOneMenu.
Código:
Pero no se ocultan los campos.public void updateOutputLabels(){ if (this.typeOfObjectSelected.equals("Objeto original") || this.typeOfObjectSelected.equals("Original Object") ){ this.typeOfObjectSelected = constantes.Constantes.obTypeOr; this.createNameFileText=utilities.Utility.readPropertiesByKey("createNameFileOr"); this.descriptionFileText=utilities.Utility.readPropertiesByKey("createDescriptionFileOr"); this.hideFields = true; }else if (this.typeOfObjectSelected.equals("Objeto adaptado") || this.typeOfObjectSelected.equals("Adapted Object") ){ this.typeOfObjectSelected = constantes.Constantes.obTypeAd; this.createNameFileText= utilities.Utility.readPropertiesByKey("createNameFileAd"); this.descriptionFileText=utilities.Utility.readPropertiesByKey("createDescriptionFileAd"); this.hideFields = false; } }
Por qué puede ser?!?!