Ich verwende Hibernate Validator 4.2.0.Final und suche nach dem einfachsten Weg, den Klassenfeldnamen in meine Fehlermeldung aufzunehmen.
Was ich gefunden habe, ist der folgende Thread Verwenden eines benutzerdefinierten ResourceBundle mit Hibernate Validator . Dementsprechend sollte ich meine benutzerdefinierte Annotation für jede Constraint-Annotation erstellen, indem ich jeweils eine Eigenschaft hinzufüge.
Gibt es einen saubereren Weg, dies zu erreichen?
Der folgende Code:
%Vor%erzeugt einen Standardfehler: size muss zwischen 0 und 5 liegen.
Ich hätte es gerne: myField size muss zwischen 0 und 5 liegen.
Vielen Dank im Voraus.
Für all diejenigen, die nach einer Möglichkeit suchen, auf den Kurs in Ihrem Validator zuzugreifen. Wenn Sie Annotation im Hibernate auf Klassen- statt auf Variablenebene vornehmen, erhalten Sie Zugriff auf ein Klassenobjekt (vorausgesetzt, Sie haben einen benutzerdefinierten Validator definiert).
%Vor% Sie können den Namen des Felds mit der Methode getPropertyPath()
aus dem ConstraintViolation
klasse .
Eine gute Standardfehlermeldung kann sein:
%Vor%Dies gibt Ihnen "foo darf nicht null sein" oder "foo.bar darf nicht null sein" im Falle verschachtelter Objekte.
Verwenden Sie oval , das eine gute Anzahl von Anmerkungen und Möglichkeiten zum Anzeigen von Nachrichten hat.
Verwenden Sie diese Methode (z. B. ConstraintViolationException-Instanz):
%Vor%Tags und Links java hibernate spring hibernate-validator