Standardnachrichten für Frühjahrsprüfungen

Ich muss die gelösten Fehlermeldungen programmgesteuert in der Steuerung abrufen. Die Standardüberprüfungsnachricht für typeMismatch-Fehler wird nicht aus meiner messages.properties-Datei ausgefüllt. Ich habe ein Formular-Backing-Objekt, bei dem ein Feld eine Ganzzahl ist. Wenn ich einen String für dieses Feld einreiche, erhalte ich:

Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Integer' for property 'establishedYear'; nested exception is java.lang.NumberFormatException: For input string: "1995a"

als Standardnachricht im ObjectError. Hier ist mein Controller, der es ausgibt:

  @RequestMapping(method = RequestMethod.POST)
  public @ResponseBody FormJSONResponse postForm(@Valid ProfileEditCompanyForm profileEditCompanyForm, BindingResult result) throws Exception {    
    if (result.hasErrors()) {
      for (ObjectError objectError : result.getAllErrors()) {
        System.out.println(objectError.getDefaultMessage());  // THIS IS NOT MY MESSAGE, BUT SHOULD BE
      }
    }
    ... other stuff ...
  }

Deshalb habe ich eine messages.properties zu WEB-INF / classes mit einigen Testnachrichten hinzugefügt, um zu sehen, ob ich diese Standardnachricht überschreiben kann:

typeMismatch.profileEditCompanyForm.establishedYear=test 1
typeMismatch.establishedYear=test 2
typeMismatch.java.lang.Integer=test 3
typeMismatch=test 4
profileEditCompanyForm.establishedYear=test 5
establishedYear=test 6

In meiner app-servlet.xml-Datei habe ich:

<mvc:annotation-driven conversion-service="conversionService" validator="validator"/>

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
  <property name="basename" value="messages" />
</bean>

<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
  <property name="validationMessageSource" ref="messageSource"/>
</bean>

Warum werden keine meiner Nachrichten aus der Datei messages.properties abgerufen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage