2012-05-28 5 views
9

Ich verwende JSF2, Richfaces4 und Spring. Ich habe eine Befehlsverbindung. Beim Ausführen speichere ich Datensätze und nach Abschluss der Suche suche ich Datensätze wie folgenden Code aus. Problem ist, dass fireSearch() in oncomplete ausgeführt wird, selbst wenn ein Validierungsfehler in Form vorliegt. Ich muss fireSearch() nur ausführen, wenn der Datensatz erfolgreich gespeichert wird.Wie führe ich a4j aus: commandLink oncomplete nur, wenn die Validierung erfolgreich war?

Wie kann ich die Oncomplete nur ausführen, wenn die Validierung erfolgreich war?

Antwort

17

RichFaces unterstützt die anforderungsbasierte EL-Auswertung in oncomplete Attribut. Sie sollten FacesContext#isValidationFailed() so drucken können, als wäre es eine JS-Bedingung.

Zum Beispiel

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

Wenn die Validierung fehlgeschlagen ist, führt dies letztlich in

oncomplete="if (false) fireSearch()" 

Und so wird die Funktion nicht aufgerufen werden.

+0

danke ich werde es testen und werde es markieren –