In quest’articolo vedremo come utilizzare all’interno della stessa pagina i due componenti primefaces: growl e messages per scopi differenti. In particolare utilizzeremo il componente message per mostrare eventuali messaggi di validazione ed il growl per mostrare messaggi di avvenuta operazione a valle naturalmente della validazione.
<h:form id="myForm"> <p:growl id="myGrowl" showDetail="true" sticky="true" rendered="#{not facesContext.validationFailed}"/> <h:panelGrid columns="3"> <p:outputLabel for="field1" value="Field 1"/> <p:inputText id="field1" value="#{myController.field1}" title="Field 1" required="true" requiredMessage="The field is required" /> <p:message for="field1" display="text"/> </h:panelGrid> <f:facet name="footer" > <p:commandButton icon="ui-icon-check" update="myForm" action="#{myController.save}" value="Save" /> </f:facet> </h:form>
L’esempio è molto semplice: una pagina con un campo di testo ed un bottone per il salvataggio. Sul campo di testo è presente una validazione semplice di tipo campo obbligatorio ed il p:message è relativo al campo di testo tramite id e mostrerà gli eventuali messaggi di validazione. Il p:growl viene invece a differenza del p:message viene visualizzato solo se la validazione è andata a buon fine. Da sottolineare il fatto che la porzione di codice:
rendered="#{not facesContext.validationFailed}"
evita che il p:growl venga visualizzato in contemporanea con il p:messagge di validazione.