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
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.