2015-04-22 18 views
5

Ich verwende Spring @Valid Annotation für Validierung Bean Felder, die mit Annotationen kommentiert.schließen Sie einige Felder von @Valid Validierung

Aber ich hatte ein Problem, wenn ich einige Felder von der Validierung ausschließen muss (nur in einigen Fällen).

Ich habe eine Untersuchung fand keine brauchbaren Wege und die meisten Antworten wurden als 2010-2011 datiert. Es ist ziemlich überraschend, da diese Situation so häufig ist.

Gibt es irgendwelche Änderungen von diesen Zeiten für Frühling 4. +? Oder kann jemand seine persönliche Erfahrung teilen, wie man das schlägt?

Danke.

Antwort

5

Sie können die Validierungsgruppe und @Validated Annotation verwenden.

Es gibt eine detaillierte Erklärung in http://www.javacodegeeks.com/2014/08/validation-groups-in-spring-mvc.html

Der Ansatz auf hibernate validator's groups basiert und es ermöglicht Ihnen, die Validierung Gruppe basierend auf der Marker-Schnittstelle und wenden es auf Handler-Ebene, beispielsweise wie in der Verbindung gegeben

@RequestMapping(value = "stepTwo", method = RequestMethod.POST) 
public String stepTwo(@Validated(Account.ValidationStepTwo.class) Account account, Errors errors) { 
    if (errors.hasErrors()) { 
     return VIEW_STEP_TWO; 
    } 
    return "redirect:summary"; 
} 
+0

Genau das, was ich brauchte. Hinweis für alle: Der Name von '@ Validated' kann irreführend sein, denn wie ich auf den ersten Blick dachte, sollte ich Gruppen überspringen, die übersprungen werden, aber in Wirklichkeit ist es umgekehrt. Auch als Platzhalter für validate nur Standardgruppe können Sie zur besseren Lesbarkeit verwenden: '@Validated (javax.validation.groups.Default.class)' was gleichbedeutend mit '@ Validated' ohne Parameter. – user2138356

+0

[Es gibt auch eine Antwort] (http://forum.spring.io/forum/spring-projects/web/117289-validated-s-given-groups-should-consider-default-group-or-not) wie nicht um 'Default.class' für alle Felder zu duplizieren. Aber leider passt es nur dazu, Feld zur Standardvalidierung hinzuzufügen, nicht auszuschließen. – GKislin

Verwandte Themen