2012-05-28 19 views
9

Używam JSF2, Richfaces4 i Spring. Mam łącze poleceń. Po uruchomieniu zapisuję rekordy i po zakończeniu wykonuję wyszukiwanie, aby wyświetlać rekordy takie jak poniższy kod. Problem polega na tym, że polecenie oncomplete jest wykonywane nawet wtedy, gdy w formularzu występuje błąd sprawdzania poprawności. Muszę wykonać fireSearch() tylko wtedy, gdy rekord zostanie zapisany pomyślnie.Jak wykonać a4j: commandLink oncomplete tylko po pomyślnym sprawdzeniu poprawności?

Jak mogę je uzupełnić tylko po pomyślnym sprawdzeniu poprawności?

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

Odpowiedz

17

RichFaces obsługuje opartą na żądaniu ocenę EL w atrybucie oncomplete. Więc powinieneś być w stanie wydrukować FacesContext#isValidationFailed() tak, jakby to był warunek JS.

Na przykład

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

Jeśli sprawdzanie poprawności nie powiodło się, to ostatecznie doprowadzić

oncomplete="if (false) fireSearch()" 

A zatem funkcja nie zostanie wywołany.

+0

dzięki będę przetestować i zaznaczę to –

Powiązane problemy