Ich habe durch benutzerdefinierte Validator definiert (implementiert javax.faces.validator.Validator Schnittstelle und in Faces-Config definiert). Ich brauche meine benutzerdefinierte Komponente, um diesen Validator innerhalb meines Komponentencodes (Renderer-Klasse) aufzurufen. Ich möchte meine xhtml so sauber wie möglich machen und wollen nicht durch die EinbettungAngeben von Validator in JSF 1.2 benutzerdefinierte Komponente
<f:validator validatorId='xx' />
in meinem Komponententag den Validator separat in meinem xhtml aufzurufen. Genau wie wie ich
getConvertedValue(FacesContext context, UIComponent component, Object submittedValue)
in meinem Renderer Umwandlung zu behandeln implementieren kann, kann ich ähnlich etwas tun Validierung innerhalb Renderer zu behandeln?
Dank
Danke. Genau das habe ich gesucht. Nur neugierig, warum getConvertedValue() im Renderer für die Konvertierung freigegeben wurde, aber nicht für die Validierung Validator hinzufügen? – phewataal
Die Konvertierung ist mehr ein Rendering-Job (findet während der Codierung von HTML-Markup und beim Decodieren von HTTP-Parametern statt) und liegt logisch in der Verantwortung des 'Renderers'. Die Validierung findet während des Renderings nicht statt und ist spezifischer für Eingabekomponenten der 'UIInput'-Familie. Die Validierung findet während der Validierungsphase statt. Die Validierung beeinflusst nicht die Werte für die Eingabe/Ausgabe. Sie können mehr als einen Validator haben, aber nicht mehr als einen Converter. Nun, ich denke, dass diese JSF-Designentscheidung durchaus Sinn macht. – BalusC
Um die Frage nicht zu verlängern, muss ich den Validator dynamisch hinzufügen/bestimmen (zB US vs. Canadian Zipcode Validator basierend auf vorherigem inputText Wert (erfasst State/Provine "Informationen). Wie kann ich addValidator() dynamisch aufrufen? – phewataal