Ajax für Java mit Direct Web Remoting

Der DWR-Zugriff von TasksSession wird auf dieselbe Weise in dwr.xml konfiguriert wie oben bei Adder, so dass das Objekt beim Start der Browser-Session mit dem Server erzeugt wird:


Die Methoden von TasksSession erwarten Task-Objekte oder geben solche zurück, welche wiederum enum-Werte (Priority) enthalten. Damit DWR diese übersetzen kann, muss man zuerst die Konvertierung zulassen und dann angeben, wie die Werte konvertiert werden sollen. In der Datei dwr.xml kann man innerhalb des Abschnitts -Elemente wie die folgenden einfügen:


Diese haben zwei Attribute: converter und match Das Attribut converter gibt an, welche Konvertierungsmethode verwendet werden soll. Die Angabe „bean“ bedeutet, dass der allgemeine Java-Bean-Konverter zum Einsatz kommt, die Angabe „enum“ verweist auf einen speziellen enum-Konverter. Das Attribut match gibt den Klassennamen an, der bei der Konvertierung übereinstimmen muss. DWR bringt standardmäßig Konverter mit, die für primitive Datentypen registriert sind (int, boolean und so weiter), für ihre klassenbasierten Versionen (Integer, Boolean und so fort), Strings, Daten, Arrays aller Vorgenannten und schließlich DOM-Objekte. Man muss nur Konverter für Klassen angeben, die nicht in dieser Liste enthalten sind.

Die SortOrder-Klasse definierte eine inner enum (TaskField). Daher muss man einen enum-Konverter für das TaskField hinzufügen, obwohl für SortOrder ein bean-Konverter angegeben ist. Man beachte das $ im match-Wert.

Um diese Zugriffsweise nutzen zu können, muss man in der HTML-Seite (dwrfrontend.html) nur Folgendes festlegen:


Um die Konverter muss man sich nicht kümmern, diese werden automatisch aufgerufen.

Die HTML-Seite enthält eine Tabelle und ein Formular. Die Tabelle selber enthält keine Zeilen und das Formular hat keinen submit-Button. Wenn die Seite geladen wird, sorgt die Funktion init dafür, dass das Formular gelöscht wird, und zwar mit einer der Utility-Funktionen von DWR, setValues:


DWRUtil.setValues nimmt das übergebene assoziative Array, sucht für jedes Schlüssel-Wert-Paar das HTML-Element mit derselben ID wie der Schlüssel und setzt dessen Inhalt auf den übergebenen Wert. Auf diese Weise lassen sich Werte leicht auf einen Rutsch setzen. Das <form>-Element in der Seite sieht so aus:


Die input-Elemente des Formulars wurden entsprechend den Feldnamen der Task-Klasse benannt. Das ist kein Zufall, wie man gleich sehen wird. Der nächste Schritt der Initialisierung ist der erste AJAX-mäßige Aufruf von TasksSession.


Und hier die Funktion handleGetSortOrder:


Diese erhält einen Wert sortorder als Rückgabewert des Aufrufs und ruft selber wiederum drawSorting auf, um die Sortierreihenfolge anzugeben (durch Einfügen von „-„, „^“ oder „v“ neben der entsprechenden Tabellenüberschrift), und ruft erneut TasksSession auf, um getAllTasks auszuführen und danach handleGetAllTasks aufzurufen.


Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Ajax für Java mit Direct Web Remoting

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *