Magazin für digitale Arbeit & Kultur
Design

Ajax-Oberflächen mit Apache Wicket

admin
#apache

In vielen Situationen benötigt man zwar eine AJAX-Oberfläche, möchte allerdings nicht die üblichen GUI-Klimmzüge in Kauf nehmen à la “ich arbeite mich zwei Wochen in ein neues AJAX-Framework ein”. Gerade bei Projekten, die den Fokus stärker auf den Server legen und das GUI beispielsweise nur verwenden, um den aktuellen Status einer Datenmigration zu visualisieren, besteht meistens der Wunsch, ein einfaches Werkzeug für die Oberfläche zu erhalten. Am besten im guten alten HTML-Stil – denn HTML “programmieren” kann eigentlich jeder…

Das Open Source Framework Apache Wicket kann genau in diesem Bereich punkten, denn durch den Einsatz von Wicket können Java-Inhalte ganz einfach nach vorne in die Oberfläche geholt werden. Ein einfaches Beispiel verdeutlicht das Konzept. Auf der Serverseite werden die anzuzeigenden GUI-Elemente samt zugehöriger Inhalte in Java definiert (HelloWorld.java). Prinzipiell erinnert das Konzept stark an GWT.

public class HelloWorld extends WebPage {
   public HelloWorld() {
        add(new Label("message", "Hello World!"));
    }
}  

Der nächste Schritt unterscheidet sich jedoch maßgeblich von GWT. Die Layout-Definition wird nicht in HTML/JavaScript übersetzt. Stattdessen wird ein HTML-GUI erstellt, das die Label-Komponente anzeigt (HelloWorld.html).

<html>
<body>
    <span wicket:id="message" id="message">Message goes here</span>
</body>
</html>  

Ein Wicket wird in die HTML-Oberfläche durch einen wicket-Tag integriert. An der Stelle des wicket-Tags soll später der Label-Inhalt der Java-Klasse angezeigt werden. Das Binding zwischen dem Wert aus der Java-Klasse und dem Wicket im GUI wird über eine ID (message) erstellt. Die Kommunikation zwischen Oberfläche und Java-Klasse wird durch ein entsprechendes Filter-Mapping in der web.xml definiert. Das vollständige “HalloWelt”-Beispiel inklusive Filter Mapping ist im Wicket-Beispielbereich verfügbar.

Für alle Entwickler, die dann doch einen kleinen Akzent auf die Oberfläche legen möchten statt ein Tabellenskelett mit Java-Werten zu erzeugen, gibt es Plug-ins. wiQuery bietet beispielsweise die Möglichkeit jQuery in eine Wicket-Anwendung zu integrieren.

Zusammenfassend kann gesagt werden, dass Wicket in puncto GUI-Resultate vielleicht nicht unbedingt nobelpreisverdächtig ist – das Konzept hinter den Oberflächen ist jedoch extrem einfach und ermöglicht ein Binding zwischen Client und Java-Welt in nur wenigen Minuten. Plug-in-Erweiterungen geben Wicket einen zusätzlichen Feinschliff und versetzen Entwickler in die Lage, robuste AJAX-Anwendungen mit Java-Backend zu erstellen. Wer Wicket nicht kennt und vor dem Problem steht, Java-Inhalte an den Client zu schicken, der sollte auf jeden Fall mal einen Blick auf Wicket werfen!

Florian Müller arbeitet für Comit Schweiz und betreut dort den Bereich User-Interface-Technologien. Darüber hinaus betreibt Florian die Plattform richability, wo regelmäßig über neueste Erkenntnisse aus dem Bereich Frontend-Technologien und -Entwicklung informiert wird. Zu erreichen ist Florian via Florian.Mueller (at) richability.com.

Über den Autor
Kommentare

Hinterlasse eine Antwort

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

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>