Bean-Validierungsgruppensequenz funktioniert nicht

8

Ich benutze Frühling 4.1, Hibernate Validator 5.1.3 für mein Projekt. Ich habe versucht, die GroupSequence von den letzten 2 Tagen zu arbeiten. Ich habe das Validierungsdokument, Blogs und einige Fragen, die auf Stackoverflow gepostet wurden, weitergeleitet.

Bitte sehen Sie sich die folgende Klasse an. Wenn ich die GroupSequence und die Gruppen aus den Annotationen entferne, werden alle Validierungsnachrichten zusammen angezeigt, d. H. Alle Prüfungen des Namens und anderer Felder werden zusammen ausgelöst. Sagen wir für Name Feld - ich will @NotBlank und @Size zuerst validiert werden, dann sollte der Name mit dem Muster übereinstimmen und schließlich sollte es für @ UniqueName wegen der Datenbankaufrufe überprüft werden.

Dafür habe ich die GroupSequence erstellt, wie in den Dokumenten und Antworten vorgeschlagen. Wenn die Validierungen ausgelöst werden, werden nur @NotBlank und @Size für den Namen ausgelöst. Wenn ich den Gruppenwert aus den verbleibenden Anmerkungen entferne, fangen sie an zu arbeiten, aber alle Fehlermeldungen werden auf einmal angezeigt, was ich nicht will.

Ich möchte, dass die Annotation, die mit den Gruppen First.class angegeben wurde, zusammen und vor Second.class-Validierungen ausgelöst wird. Ich verstehe nicht, warum die mit Gruppen angegebenen Validierungen nicht ausgelöst werden.

Kann mir bitte jemand helfen?

%Vor%     
jay28 23.12.2014, 19:27
quelle

1 Antwort

5

Verwende Spring's @Validated anstelle von @Valid . Dadurch können Sie die Gruppe angeben und die Sequenz steuern.

Ändern Sie Ihre Controller-Methode zu:

%Vor%

Beachten Sie, dass Sie @GroupSequence({MyForm.class, OrderedChecks.class}) nicht über MyForm bean benötigen müssen.

    
Khalid 29.12.2014, 16:53
quelle