Eingabefelder und Composite Components mit <f:validate...> validieren

Müll rein, Müll raus. Das passiert, wenn man seine Formulare nicht richtig validiert. Zum Glück bietet JSF diverse Möglichkeiten dies einfach und richtig zu tun.

In diesem Tutorial schauen wir uns an, wie man mit <f:validate...> Eingabefelder und Composite Components validieren kann.

SVN

Sie können das fertige Projekt per SVN von http://xpert-ivy-hacker-source-code.googlecode.com/svn/trunk/Forms in den Xpert.ivy Designer importieren.

web.xml konfigurieren

Bevor wir loslegen können, müssen wir noch etwas im web.xml ([ivy-installations-pfad]/webapps/ivy/WEB-INF) anpassen bzw. kontrollieren. Grund dafür ist, dass leere Eingabefelder aus Kompatibilitätsgründen zu JSF 1.x nicht validiert werden. Wer mehr darüber erfahren will, kann dies hier tun.

Im web.xml muss folgender Eintrag drin sein.

Code-Snippet 1: web.xml Eintrag

Eingabefelder validieren

Um ein Eingabefeld wie z.B. ein <p:inputText> mit <f:validate...> validieren zu können, kann man die Validatoren zwischen <p:inputText>...</p:inputText> schreiben.

Code-Snippet 2: Eingabefeld validieren (ConfigureValidationComponent)

Eingabefelder von Composite Components validieren

Wie sieht es aber aus, wenn man die Eingabefelder von Composite Components je nach Situation anders validieren will?

Im <cc:interface> eines Composite Components kann man so genannte valueHolder bzw. editableValueHolder definieren. Diese erlauben es unter andrem <f:validate...> Konfigurationen von aussen zu definieren.

Code-Snippet 3: valueHolder definieren (ConfigureValidationComponent)

Bei einen valueHolder gibt man den Namen an unter dem man ihn von aussen ansprechen will sowie die Eingabefelder, die man über diesen valueHolder konfigurieren will.

Jetzt kann man den den Composite Component benutzen und mit <f:validate...> konfigurieren.

Code-Snippet 4: valueHolder konfigurieren (ConfigureValidationDemo)

Man beachte das for Attribut das auf das name Attribut des valueHolder referenziert.

Fazit

Mit <f:validate...> und valueHolder kann man auf einfach Art und Weise die Validation von Composite Components konfigurierbar machen.
Über den Author: Heinrich Spreiter ist der Gründer von xpertivyhacker.ch. Kontaktieren Sie ihn auf Xing und Twitter

Melden Sie sich für den Xpert.ivy hacker Newsletter an und Sie erhalten immer die neusten Tutorials und Tricks zu Xpert.ivy sobald sie publiziert werden.

Ihre Email Adresse wird nur für diesen Newsletter verwendet und nicht an dritte weitergegeben.

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.