This blog has moved to
http://blog.matthias-reining.com

Die bestehenden Artikel bleiben vorerst alle bei blogspot. Neue Artikel veröffentliche ich allerdings nur noch auf http://blog.matthias-reining.com

Donnerstag, 15. April 2010

JSF2, AJAX & JavaScript Events

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