I'll be brief.
There is a controller with validation:
@RequestMapping(method = RequestMethod.POST) public @ResponseBody ValidationResponse addOrder(@ModelAttribute(value = PARAM_NAME) @Valid Orders orders, BindingResult bindingResult) { ... }
When you type on the form of inconsistency type "asda" in the field for java.lang.Long
, I get the corresponding Exception
about the inability to convert from string to number. The message of this Exception
is stored in bindingResult
How can I change the message that appears on its own, internationalized in accordance with the locale?
What I tried: In the spring config there is such a thing:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="/WEB-INF/messages" /> <property name="defaultEncoding" value="UTF-8"/> </bean> <bean name="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="validationMessageSource"> <ref bean="messageSource"/> </property> </bean>
The /WEB-INF/messages.properties
has a bunch of lines:
Orders.width.NotNull=Это поле не может быть пустым! Orders.height.NotNull=Это поле не может быть пустым! typeMismatch.java.util.Date=Должно быть коррекной датой typeMismatch.java.lang.Integer=Должно быть корректным числом typeMismatch.java.lang.Long=Должно быть корректным числом java.lang.NumberFormatException=Должно быть корректным числом typeMismatch.java.lang.NumberFormatException=Должно быть корректным числом typeMismatch.java.lang.NumberFormat=Должно быть корректным числом typeMismatch.orderAdd.width=Должно быть корректным числом typeMismatch=Должно быть корректным числом
But as you probably guessed, everything is under the tail of the cat and it doesn’t rezolvitsya. Climbed a bunch of sites, but did not find the answer.
Who can knows, or faced this problem will prompt the decision?
It is noteworthy that if for a field, for example, width
put a check on Null, for example:
... @NotNull(message="{Orders.width.NotNull}") private Long width; ...
That check messages on Null
rezolvitsya normally. But this does not affect the conversion error.
messageSource
your beanmessageSource
? - Slava Semushin 9:09/WEB-INF/action-servlet.xml
. And in theweb.xml
there are lines: ... <servlet> <servlet-name> action </ servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </ servlet-class> <init-param > <param-name> contextConfigLocation </ param-name> <param-value> /WEB-INF/action-servlet.xml </ param-value> </ init-param> <load-on-startup> 1 </ load-on-startup> </ servlet> ... - delphist007