Spring Boot JSR303 Nachrichtencode in Annotation wird ignoriert

8

In meiner Spring Boot App habe ich eine Backing Bean, wo ich die JSR303-Validierung verwende. In der Annotation habe ich den Nachrichtencode angegeben:

%Vor%

Dann habe ich in meiner message.properties angegeben:

%Vor%

Meine JavaConfig für die messageSource lautet:

%Vor%

Die Validierung funktioniert korrekt, aber anstatt die tatsächliche Zeichenfolge zu sehen, erhalte ich den Nachrichtencode auf meiner JSP-Seite. Beim Betrachten der Protokolldatei sehe ich eine Reihe von Codes:

%Vor%

Wenn ich den Nachrichtencode in den message.properties in einen der Codes im Array ändere, wird die Zeichenfolge in meinem Webformular korrekt angezeigt. Ich musste den Code in der Annotation nicht einmal ändern. Dies deutet darauf hin, dass der Code im Message-Parameter der Annotation ignoriert wird.

Ich möchte den Standardcode nicht verwenden. Ich möchte meine eigenen benutzen. Wie kann ich das machen? Können Sie bitte ein Codebeispiel angeben?

    
user3137124 13.02.2015, 04:55
quelle

2 Antworten

8

Die JSR303-Interpolation funktioniert normalerweise mit ValidationMessages.properties file. Sie können Spring jedoch so konfigurieren, dass Sie das ändern, wenn Sie möchten (ich war faul :) :) z. B.

%Vor%     
sodik 13.02.2015, 08:37
quelle
5

Laut der JSR-303-Spezifikation werden Nachrichtenparameter in ValidationMessages.properties -Dateien gespeichert . Aber Sie können den Ort, an dem sie gesucht werden, außer Kraft setzen.

Sie haben also zwei Möglichkeiten:

  1. Verschieben Sie Ihre Nachrichten in die ValidationMessages.properties -Datei
  2. Oder überschreibe getValidator() Methode des Nachkommens von WebMvcConfigurerAdapter ( JavaConfig in deinem Fall):

    %Vor%
Lu55 23.09.2015 10:13
quelle

Tags und Links