Dalla versione 3.3 di prime faces è possibile condizionare la comparsa di messaggi in formato tradizionale (p:messages) oppure a scomparsa temporale (p:growl).
Nel mio caso avevo il seguente scenario.
Un form con un p:messages dichiarato e al suo interno un p:dialog.
Quando si verificava un errore di validazione nel p:dialog doveva comparirmi un p:message (interno al dialog) più a livello di pagina un p:growl (per comodità dell'utente).
Quindi non doveva essere visibile il p:messages standard della pagina che doveva gestire casistiche di errore relative al form e non al dialog.
Nel p:dialog ho definito il p:message interno così:
Nel caso di errore di validazione lato java inserisco l'errore in questo modo:
Sulla pagina invece ho definito i miei messaggi così:
Quindi tutti i messaggi aggiunti genericamente sono gestiti dal p:messages mentre il p:growl si gestisce soltanto gli errori con id "erroreFascicolo".
Nel mio caso avevo il seguente scenario.
Un form con un p:messages dichiarato e al suo interno un p:dialog.
Quando si verificava un errore di validazione nel p:dialog doveva comparirmi un p:message (interno al dialog) più a livello di pagina un p:growl (per comodità dell'utente).
Quindi non doveva essere visibile il p:messages standard della pagina che doveva gestire casistiche di errore relative al form e non al dialog.
Nel p:dialog ho definito il p:message interno così:
<p:messages for="erroreFascicolo" showDetail="true" autoUpdate="true" closable="true" escape="false" />
Nel caso di errore di validazione lato java inserisco l'errore in questo modo:
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,"errore di validazione","");
FacesContext.getCurrentInstance().addMessage("erroreFascicolo", msg);
Sulla pagina invece ho definito i miei messaggi così:
<p:messages id="messages" globalOnly="true" showDetail="true" autoUpdate="true" closable="true" />
<p:growl id="growl" for="erroreFascicolo" showDetail="true" autoUpdate="true" escape="false" life="15000"/>
L'attributo globalOnly="true" (di default è pari a false) significa che quel messaggio sarà visualizzato solo nel caso di messaggi aggiunti al contesto jsf senza id.Quindi tutti i messaggi aggiunti genericamente sono gestiti dal p:messages mentre il p:growl si gestisce soltanto gli errori con id "erroreFascicolo".
Nessun commento:
Posta un commento