Wenn man sich in den „AJAX Lifecycle“ eines JSF2 Calls hängen will, muss hierzu das Attribute onEvent gesetzt werden.
<h:commandButton styleClass="button large" action="#{schlagView.addWorking}" value="${msg.buttonAddWorkStep}">
<f:ajax render="@form" execute="@form" onevent="newRowEvent"/>
</h:commandButton>
Die JSF2 Spec (Javadoc) schreibt hierzu folgendes.
„The name of the JavaScript function that will handle UI events.“
Alles klar: In dem oben aufgeführten Beispiel wird dann die JavaScript Funktion newRowEvent aufgerufen.
Bei mir sieht die JS Funktion folgendermaßen aus:
function newRowEvent(data) {
if (data.status != 'success') return;
//new line
//...
}
Die Methode wird insgesamt 3x aufgerufen – für jeden Ajax-Call-Zustand einmal.
Interessant ist hierbei der Parameter data. Das Property status von data gibt Aufschluss über den aktuellen Zustand des Ajax Calls:
· begin
· complete
· sucess
Weitere Property Werte von data sind beispielsweise responseCode, responseText, responseXML oder source. Die möglichen Properties variieren in Abhängigkeit des Statuswertes.
--
Das beschriebene Verhalten spiegelt tritt bei mir exakt so auf beim Einsatz von Mojarra als JSF Implementierung in der out-of-the-box Variante bei Glassfish v3
Keine Kommentare:
Kommentar veröffentlichen