Пользовательские ошибки Spring MVC и интернационализация - PullRequest
1 голос
/ 28 марта 2012

В моем веб-приложении я исправляю ошибки с помощью аннотаций.Все работает нормально, и я могу использовать пользовательские сообщения с помощью параметра "message".

@Digits(fraction = 0, integer = 3, message="my custom error message...")
private String price;

Теперь я пытаюсь интернационализировать это сообщение с помощью файлов .properties, но я определенно что-то пропускаю и не могузаставить его работать.

Мой весенний конфиг:

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <beans:property name="basenames" value="classpath:i18n/messages, classpath:i18n/errors" />
    <beans:property name="defaultEncoding" value="UTF-8" />
</beans:bean>

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

<beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver">
    <beans:property name="defaultLocale" value="fr" />
</beans:bean>

Мой новый бин:

@Digits(fraction = 0, integer = 3)
private String price;

Мой файл "errors_fr.properties".Я уже все перепробовал:

Digits.myBean.myNestedBean.price = my custom error message...
Digits.myNestedBean.price = my custom error message...
javax.validation.constraints.Digits.myNestedBean.price = my custom error message...

Я всегда получаю одно и то же общее сообщение от spring, как будто spring не обнаруживает мой файл .properties.Кстати, приведенные выше ключи сообщений можно найти в объекте BindingResult при отладке.

Что мне здесь не хватает?

Обратите внимание, что у меня уже есть интернационализированные сообщения в моем jsp (в "messages_fr.properties ") и они работают нормально.

1 Ответ

5 голосов
/ 28 марта 2012

У меня была похожая проблема в моем приложении, и я надеюсь, что это поможет вам.

Как обсуждено в этой теме, http://forum.springsource.org/showthread.php?73240-Roo-JSR-303-Validations-and-Localization, вам необходимо:

  1. определить сообщения об ошибках, на которые ссылается аннотация в файле ValidationMessages.properties
  2. в аннотации см. Ключ сообщения об ошибке, заключенный в фигурные скобки:

@Digits(fraction = 0, integer = 3, message="{message.key}")

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...