Sollte die Validierung nicht übersprungen werden, wenn kein Wert angegeben ist?

7

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%     
Robert Hume 24.05.2011, 16:49
quelle

1 Antwort

21

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:

  1. Sagen Sie JSF, dass leere Felder nicht durch den folgenden Eintrag in web.xml validiert werden sollen.

    %Vor%

    Der Nachteil liegt auf der Hand: Sie können die JSR 303 Bean Validation nicht mehr mit voller Leistung nutzen.

  2. Machen Sie eine Nullprüfung in Validator .

    %Vor%

    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.

BalusC 24.05.2011, 16:53
quelle

Tags und Links