Version: GSB 7Formularvalidatoren
Jedem Formularelement können ein oder mehrere Validatoren zugewiesen werden. Diese werden vor der eigentlichen Bearbeitung der Formular-Parameter durch die FormAction ausgeführt und setzen einen entsprechenden Fehlercode (ActionError). Das Formular verweist dann, ohne die eigentliche Action auszuführen, sofort auf die konfigurierte Fehlerseite, auf der die Fehlercodes angezeigt werden.
Validatoren können sowohl als gewöhnliche Properties als auch als klassifizierte Parameter konfiguriert werden. Welche Parameter möglich sind, hängt von der Validator-Klasse ab.
Der GSB unterstützt die folgenden Validator-Klassen. Alle Validator-Klassen sind im Package de.bundonline.basis.web.struts.validation abgelegt.
- IntegerValidator - Der eingegebene Wert muss eine gültige Integer-Zahl sein.
- LongValidator - Der eingegebene Wert muss eine gültige Long-Zahl sein.
- DoubleValidator - Der eingegebene Wert muss eine gültige Double-Zahl sein.
- StringLengthValidator - Der eingegebene Wert darf die im Validator-Parameter maxLength angegebene Länge nicht überschreiten und die im Validator-Parameter minLength angegebene Länge nicht unterschreiten.
- DateValidator - Der eingegebene Wert muss ein gültiges Datum sein. Das Format kann im Validator-Parameter formatString in der SimpleDateFormat-Syntax angegeben werden. Der Default-Wert ist "dd.MM.yyyy". Weitere Konfigurationsmöglichkeiten betreffen Vergleiche und zu ignorierende Defaultwerte:
Der klassifizierte Parameter after kann auf ein anderes Texteingabe-Feld verweisen, dessen Wert vor dem aktuellen Wert liegen muss. Analog funktionieren die klassifizierten Parameter before, afterOrEqual und beforeOrEqual.Wenn das Formularelement ein Pflichtfeld ist, kann im Validator-Parameter defaultString ein Defaulttext angegeben werden, der zu einem Mandatory-Error führen soll. Der Defaultwert für diesen Text ist "tt.mm.jjjj".
- EmailValidator - Der eingegebene Wert muss eine gültige Email-Adresse sein. Die Validierung der Email-Adresse wird mithilfe von org.apache.commons.validator.EmailValidator durchgeführt.
- PasswordValidator - Prüft ein eingegebenes Passwort auf einige Minimal-Anforderungen (eine Länge von mindestens 8 Zeichen, mindestens ein Großbuchstabe, mindestens ein Kleinbuchstabe und mindestens eine Ziffer). Dieser Validator ist nicht konfigurierbar.
- RegexValidator - Prüft den eingegebenen Wert gegen den konfigurierten Regulären Ausdruck. Dieser wird im Parameter regex angegeben.
- InverseRegexValidator - Prüft den eingegebenen Wert gegen den konfigurierten regulären Ausdruck und invertiert das Ergebnis. Der Reguläre Ausdruck wird im Parameter regex angegeben.
- NotDefaultValueValidator - Stellt sicher, dass der eingegebene Wert nicht dem Defaultwert des Formularelements entspricht. Dieser Validator kann nur auf HFTextInput-Elementen angewendet werden.
- OneOfMandatoryValidator - Dieser Validator stellt sicher, dass mindestens eines der konfigurierten Formularelemente ausgefüllt wurde.
Die zu prüfenden Eingabefelder müssen einer der Validator-ClassifiedLinkListen mit dem Text-Classifier "elements" oder "elementsNoDefaultValue" zugewiesen sein. Bei den Elementen der zweiten Liste wird ein Eingabefeld mit Default-Wert wie ein leeres Eingabefeld behandelt.Wichtig: Wenn auch das aktuelle Element geprüft werden soll, muss es einer der beiden Listen zugewiesen werden. Wenn keines der Felder gefüllt ist, wird standardmäßig ein ActionError mit dem Code "formFieldOneMandatory" gesetzt. Der Fehlercode lässt sich über die Validator-Property "errorCode" überschreiben.
- ShoppingCartValidator - Form-Validator für den Warenkorb. Der Warenkorb selbst muss im Session-Bean "cart" stehen. Durch diesen Validator werden die minimale und maximale Bestellsumme (Parameter "minimumOrder" und "maximumOrder") sowie Mindest- und Maximalmengen für einzelne Dokumente überprüft (CL2-Parameter mit dem zu prüfenden Dokument als Link-Classifier und der Mengenangabe als Text-Classifier in der Form "MIN-MAX", "MIN-" oder "MAX"). Dieser Validator wird nicht einem einzelnen Formularelement, sondern dem HFForm zugewiesen. Wenn kein Link-Classifier zugewiesen wurde, beziehen sich die MIN-MAX Werte auf alle Dokumente im Warenkorb.
Neben den vorgestellten Validatoren werden standardmäßig die Pflichtfelder der Formularelemente ausgewertet (Property mandatory).