Ich verwende JSF2 auf GlassFish 3.
Ich habe ein Formular akzeptiert und optional Telefonnummer. Ich habe diese benutzerdefinierte Telefonnummer Validator (unten), und ich habe das Feld auf erforderlich="false" festgelegt, da die Telefonnummer im Formular optional ist.
Das Problem ist, dass der Wert im Feld immer validiert wird. Sollte die Validierung nicht übersprungen werden, wenn kein Wert angegeben ist?
Es muss etwas geben, was ich falsch mache. Jede Hilfe wird geschätzt, danke!
%Vor%#
%Vor% Ab JSF 2.0 überprüft JSF standardmäßig auch leere Felder, um gut mit der neuen Java EE 6 bereitgestellten JSR 303 Bean Validation API zu funktionieren, die unter anderem @NotNull
und weiter.
Es gibt grundsätzlich zwei Möglichkeiten, dies zu umgehen:
Sagen Sie JSF, dass leere Felder nicht durch den folgenden Eintrag in web.xml
validiert werden sollen.
Der Nachteil liegt auf der Hand: Sie können die JSR 303 Bean Validation nicht mehr mit voller Leistung nutzen.
Machen Sie eine Nullprüfung in Validator
.
Wenn Sie keinen javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
-Kontextparameter haben, der auf true
gesetzt ist, dann möchten Sie auch nach String
und auch nach isEmpty()
umwandeln.
Tags und Links validation jsf jsf-2