Весна 3.0 МВК
Прежде всего, я не нашел никакой документации относительно messages.properties @ springsource Все, что я нашел о переопределении сообщений об ошибках, было на разных форумах. Если у кого-нибудь есть ссылка на документацию messages.properties, это было бы здорово. Может быть, messages.properties исходит не из весны, а из спецификации Java?
Я попытался следовать совету Проверка типа JSR-303 перед привязкой Моя цель - заменить некоторые сообщения об ошибках несоответствия типов моими собственными сообщениями об ошибках, удобными для пользователя.
Моя ситуация следующая:
Модель
public class Test {
private int numberbomb;
public int getNumberbomb() {
return numberbomb;
}
public void setNumberbomb(int numberbomb) {
this.numberbomb = numberbomb;
}
}
myservlet.xml
<mvc:annotation-driven/>
jsp
<form:form id="test" method="post" modelAttribute="test">
<form:errors path="*"/>
<form:label path="numberbomb">numberbomb</form:label>
<form:input path="numberbomb"/>
</form:form>
классы\сообщения.свойства
typeMismatch=bad value you bad bad person
test.numberbomb=you are driving me crazy with these bad inputs
Вывод из формы
Не удалось преобразовать значение свойства типа java.lang.String в требуемый тип int для свойства numberbomb; вложенным исключением является org.springframework.core.convert.ConversionFailedException: невозможно преобразовать значение «три» из типа java.lang.String в тип int; вложенным исключением является java.lang.NumberFormatException: для входной строки: «три»
BindingResult.toString() в моем контроллере
Ошибка поля в объекте «тест» в поле «номербомба»: отклоненное значение [три]; коды [typeMismatch.test.numberbomb, typeMismatch.numberbomb, typeMismatch.int, typeMismatch]; аргументы [org.springframework.context.support.DefaultMessageSourceResolvable: коды [test.numberbomb,numberbomb]; аргументы []; сообщение по умолчанию [номербомб]]; сообщение по умолчанию [Не удалось преобразовать значение свойства типа 'java.lang.String' в требуемый тип 'int' для свойства 'numberbomb'; вложенным исключением является org.springframework.core.convert.ConversionFailedException: невозможно преобразовать значение «три» из типа «java.lang.String» в тип «int»; вложенным исключением является java.lang.NumberFormatException: для входной строки: «три»]
Отображение сообщений об ошибках с <form:errors>
неправильным образом отображает пользовательские сообщения об ошибках? Нужно ли мне что-то добавлять в конфигурационные файлы Spring, чтобы указать ему смотреть на messages.properties? Кажется, что Spring игнорирует мой файл messages.properties (который находится в папке WEB-INF\classes)
Спасибо за любые идеи!