Hibernate -Validator Notimpty Trim Problem
-
20-09-2019 - |
Frage
Es scheint, dass der Winterschlaf NotEmpty
Annotation führt nicht zu einem Fehler für Zeichenfolgen, die mit Whitespace gefüllt sind (" "
). Funktioniert nur für Nulls oder leere Saiten (dh: new String()
). Gibt es dafür eine Problemumgehung/Lösung?
Lösung
Ersetzen Sie Ihren @notEmpty durch eine @PatternNNN -Annotation, die einen Regex -Ausdruck enthält, der an Strings, die reine Weißespace oder leer sind, fehlschlägt (Sie können möglicherweise sowohl @NotEmpty als auch @Pattern einbezogen und die Regex auf diese Weise vereinfachen). Oder schreiben Sie einen benutzerdefinierten Validator wie beschrieben hier.
Andere Tipps
@NotEmpty wird verwendet, um die Größe und nicht für Inhalte zu überprüfen, und gilt sowohl für Sammlungen als auch für Zeichenfolgen. Die Funktionalität, nach der Sie suchen, ist in @Notblank, die spezifisch für Zeichenfolgen ist und die nachfolgende Weißespace ignoriert.
@NotBlank
ist der Weg, um die Stringlängen mit einem impliziten Trimmanruf zu testen.