2012-05-28 9 views
9

Sto usando JSF2, Richfaces4 e Spring. Ho un link di comando. Al momento eseguo il salvataggio dei record e al termine eseguo la ricerca per visualizzare record come il seguente codice. Il problema è che fireSearch() in esecuzione incompleta anche se è presente un errore di convalida nel modulo. Devo eseguire fireSearch() solo quando il record viene salvato correttamente.Come eseguire a4j: commandLink incompleto solo quando la convalida ha avuto successo?

Come posso il completamento incompleto solo quando la convalida ha avuto esito positivo?

<a4j:commandLink styleClass="button" action="#{myBean.save}" render="detail_form" execute="@form" oncomplete="fireSearch()"> 
<span> Save </span> 
</a4j:commandLink> 

risposta

17

RichFaces supporta la valutazione EL basato richiesta attributo oncomplete. Quindi dovresti essere in grado di stampare FacesContext#isValidationFailed() come se fosse una condizione JS.

Per esempio,

oncomplete="if (#{!facesContext.validationFailed}) fireSearch()" 

Se la convalida non è riuscita, questo sarà concludersi con

oncomplete="if (false) fireSearch()" 

e quindi non verrà invocata la funzione.

+0

grazie testerò e lo contrassegnerò –