Validierungsframework für Java Drucken
Beitragsinhalt
Validierungsframework für Java
Ziele
Features
UI-Integration des Frameworks
Es existieren verschiedenste Frameworks zur Validierung von Formularen für die Sprache Java. Allen diesen Frameworks ist gemein, daß sie für spezielle Anwendungsszenarien geschaffen wurden. Das vorgeschlagene Framework arbeitet auf der Grundlage von BeanInfo-Klassen und iost gleichermaßen für (Swing-)Fat-Clients wie auch für Webanwendungen einsetzbar.

Einleitung

Es existieren verschiedenste Frameworks zur Validierung von Formularen für die Sprache Java. Allen diesen Frameworks ist gemein, daß sie für spezielle Anwendungsszenarien geschaffen wurden. Es existiert zum Beispiel das Framework im Rahmen des Apache-Commons-Projektes, das für Struts weiter aufgebohrt wurde.

Für das hier diskutierte Framework wurden Anforderungen formuliert, die durch keines der bekannten Frameworks definitiv und vollständig abgedeckt wurden:

  • Code der Validierung soll nicht direkt im Formular (in der Geschäfts- oder fachlichen Logik) eingebunden, sondern deklarativ spezifiziert werden
  • Einfache Interfaces zur Implementierung von neuen Regeln sollen die Programmierer motivieren, neue spezifische regeln für das Framework zu implementieren
  • Unterstützung mehrsprachiger Fehlermeldungen ist für den Einsatz in Client-Server-Szenarien unabdingbar
  • Validierungen, die lediglich einzelne Felder prüfen, sollen ebenso verfügbar sein,
  • wie Formular-basierte (Feld-übergreifende) Validierungen, die mehrere Felder in die Validierung einbeziehen
  • Check der Formular-basierten Überprüfungen erst wenn alle Einzelfeld-basierten Überprüfungen fehlerfrei sind
  • Hierarchisierung von Regeln: validiere Regel A nur, wenn Validierung von Regel B erfolgreich war
  • Gleichberechtigte Menge von Regeln: Validiere alle Regeln, egal ob und wenn ja wie viele Validierungen bereits fehlgeschlagen sind
  • Das Ergebnis der Validierung beschränkt sich nicht nur auf "wahr oder falsch" sondern ergibt (bei fehlgeschlagener Validierung) immer auch "warum ist es falsch"

Im weiteren wird auf die einzelnen Anforderungen näher eingegangen. Das Ergebnis ist ein Framework, das mit Erfolg sowohl für klassische Desktop-Anwendungen als auch für Client-Server-Anwendungen eingesetzt wird. Ein Beispiel für den Einsatz ist das JavaBeansFramework, in dem über entsprechende visuelle Signale an den Formular-Elementen in den generierten GUIs die Gründe für die nicht akzeptierten Eingaben angezeigt werden.