Ich habe einen benutzerdefinierten Bean-Validator, der überprüft, ob ein bestimmtes Feld in einer Entität für einige Bedingungen eindeutig ist. Wenn die Validierung fehlschlägt, sollte die Nachricht ein Feld (z. B. die ID) der bereits existierenden Entität enthalten. So sollte zum Beispiel die Nachricht sein:Validierungsspezifische Parameter in Bean-Validierungsnachricht interpolieren
"Product 42 already has such a value defined, choose a unique value."
Ist dies mit Bean Validierung möglich?
AFAICS kann die Nachrichtenformat-Parameter enthält, wie zum Beispiel:
"Length must be between {min} and {max}."
Aber das "statische" Attribut der Validierung Annotation nur verweisen kann, in diesem Fall:
@Size(min=1, max=16)
private String name;
In Mein Fall, der Wert ist nur innerhalb isValid
meines benutzerdefinierten Validators bekannt.
Das Problem ist, dass ich nicht die endgültige Nachricht im Validator, nur ein Format (für Übersetzungen) und Parameter erstellen will. Aber ich vermute, dass ich die Nachricht im Validator lokalisieren soll. – robinst
Ich habe die Lösung, die wir gefunden haben, als eine andere Antwort veröffentlicht. Aber ich denke, Ihre Antwort ermöglicht spezifischere Fehlermeldungen, selbst wenn die Lokalisierung innerhalb des Validators vorgenommen werden muss, akzeptierte ich sie. – robinst