Gehören Feldbezeichner innerhalb Fehlermeldung mit Hibernate Validator
Ich bin mit Hibernate Validator 4.2.0.Finale und ich bin auf der Suche nach der einfachste Weg zum einbinden der Klasse Feld "name" in meiner Fehlermeldung.
Was ich gefunden habe ist der folgende thread Mithilfe einer benutzerdefinierten ResourceBundle mit Hibernate Validator. Laut diesem sollte ich meine benutzerdefinierten annotation für jede constraint-annotation das hinzufügen einer Eigenschaft jeweils.
Gibt es eine bessere Möglichkeit, dies zu erreichen?
Folgenden code:
@Size(max = 5)
private String myField;
produziert Standard-Fehler: Größe muss zwischen 0 und 5.
Ich würde es gerne zu: myField Größe muss zwischen 0 und 5.
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie den Namen des Feldes mit der
getPropertyPath()
Methode aus derConstraintViolation
Klasse.Einen guten Standard-Fehlermeldung können sein:
Die Ihnen "foo darf nicht null sein" oder "foo".bar darf nicht null sein" im Fall von verschachtelten Objekten.
Ich bin nicht bewusst jede generische Weise, aber Sie können benutzerdefinierte Fehlermeldung und umfassen field name.
Lege ich jedem field-validation-message in der properties-Datei, wie hier:
und in der Bohne, verwenden Sie es wie diese:
Ich weiß, es ist nicht eine perfekte Lösung, aber ich weiß auch nicht, einen besseren Weg finden.
Wenn Ihre Nachrichten sind in
.properties
- Datei, dann gibt es keine interpolation variable für den Zugriff auf die Eigenschaft name, sondern eine Weise können Sie erreichen, dass istODER
Referenz: Nachricht interpolation
verwenden oval dieser hat eine gute Anzahl von Anmerkungen und Möglichkeiten zur Anzeige von Meldungen.
Für alle diejenigen, die auf der Suche nach einem Weg, um Zugriff auf die Klasse innerhalb Ihrer Bestätigung. Putting-hibernate Annotation auf Klassenebene statt der Variablen Ebene erhalten Sie Zugriff auf ein class-Objekt (vorausgesetzt, dass Sie definiert haben, eine benutzerdefinierte validator).
verwenden Sie diese Methode, (ex ConstraintViolationException Instanz):