EN · DE · RU · FR · ES

#2773: AjaxFormSubmitCallback.java

projectforge-wicket/src/main/java/de/micromata/wicket/ajax/AjaxFormSubmitCallback.java Java-Interface (Micromata Wicket Ajax Form) · projectforge-wicket/src/main/java/de/micromata/wicket/ajax/AjaxFormSubmitCallback.java 39 Zeilen · 7 Code · 28 Kommentare · 4 leer
Eine Spezialisierung von AjaxCallback für Wicket-Formularübermittlungsszenarien. Erweitert den grundlegenden Callback-Vertrag um eine onError(AjaxRequestTarget, Form<?>)-Methode, die ausgelöst wird, wenn die Formularvalidierung fehlschlägt. Dieses Interface trennt den Erfolgspfad (geerbte callback-Methode) vom Fehlerpfad (neue onError-Methode) und folgt dabei dem Vorlagenmethodenmuster auf Interface-Ebene. Implementierungen erhalten sowohl das Ajax-Ziel (zur Aktualisierung von Fehlermeldungen im DOM) als auch die Formularinstanz (zur Überprüfung von Validierungsfehlern).

Architektur

Zweiphasiges Callback-Muster

Die Trennung von Erfolgs- und Fehlerbehandlung auf Interface-Ebene ist bewusst gewählt. Wicket-Formulare arbeiten in einem zweiphasigen Validierungszyklus: Zuerst validiert das Formular, dann wird entweder der Erfolgs- oder der Fehlerhandler ausgeführt. Durch die Kodierung beider Ergebnisse im Interface-Vertrag kann der aufrufende Code in Micromatas benutzerdefinierten Ajax-Verhaltensweisen die entsprechende Methode basierend auf dem Validierungszustand des Formulars bedingungslos aufrufen, ohne dass Reflektion oder instanceof-Prüfungen erforderlich sind.

Serialisierungsanforderung

Wie sein übergeordnetes Interface AjaxCallback erweitert auch dieses Interface Serializable. In der Seiten-Speicherarchitektur von Wicket (die Seiten zwischen Anfragen auf die Festplatte oder in eine Datenbank serialisieren kann) müssen Callback-Implementierungen die Serialisierung überstehen. Dies ist eine häufige Wicket-Einschränkung – jedes Objekt, das an einer Komponentenstruktur hängt, muss Serializable implementieren.

Git-Verlauf

CommitWas geändert wurde
868d6abb7 bis ceb63e8a1Sechs jährliche Aktualisierungen der Copyright-Header (2001-2021 → 2001-2026), die die gesamte Dateigeschichte abdecken. Das Interface selbst wurde seit seiner ursprünglichen Erstellung nie geändert – der Formular-Übermittlungs-Callback-Vertrag hat sich für alle Formularbehandlungsszenarien in der Anwendung als ausreichend erwiesen.