Tutorial: World Wide Wicket

Das Abschicken der Form

Herr K. möchte gerne die Kundendaten in der aktuellen Session speichern, sobald der Kunde seine Daten eingegeben hat und die Form abschickt. Hierfür fügt Herr K. der Form einen entsprechenden SubmitLink hinzu:

form.add(new SubmitLink("submit") {
      @Override
      public void onSubmit() {
    // store new customer in session
    ((VideoSession) getSession()).setCustomer(customer);
    setResponsePage(SelectMoviePage.class);
      }
  });

Wicket bietet ein Herrn K. (und auch den meisten anderen Entwicklern) sehr geläufiges Event-basiertes Programmiermodell, das sich in den meisten GUI-Frameworks bewährt hat. Die onSubmit-Methode der SubmitLink-Komponente wird ausgeführt, sobald der Benutzer die Form abschickt.

Durch das zuvor definierte Binding kann Herr K. sicher sein, dass die eingegebenen Daten bereits im Customer vorhanden sind, wenn alle Validierungen erfolgreich waren. Schlägt eine Validierung fehl, wird nichts in das Domänenobjekt geschrieben.

Fazit

Herr K. musste sich initial viele Grundlagen zum Thema Wicket erarbeiten. So konnte er im ersten Teil dieses Artikels lediglich eine einzige Seite fertigstellen. Diese jedoch mit der Möglichkeit von Benutzereingaben, effizienter Verwendung von Wicket-Models und zusätzlicher Validierung von Eingaben.

Im zweiten Teil des Artikels wird Herr K. den Rest der Anwendung implementieren und sich hierfür u. a. die Navigation zwischen verschiedenen Wicket-Seiten, die Einbindung interessanter Komponenten wie ListViews, die Möglichkeit zur Strukturierung von Seiten und eine Anbindung an das Spring-Framework genauer betrachten.

Für heute jedoch hat sich Herr K. und der Autor das Feierabendbier redlich verdient und dasselbe gönnen wir auch Ihnen. Schönen Feierabend!

Martin Dilger arbeitet als Consultant bei der PENTASYS AG in München. Er beschäftigt sich beruflich hauptsächlich mit Git, Wicket, RCP, RAP und OSGi und bloggt regelmäßig unter http://splitshade.wordpress.com.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.