The magic method that does the required job is LocalValidatorFactoryBean#setValidationMessageSource(MessageSource messageSource).
First of all, contract of the method:-
Specify a custom Spring MessageSource for resolving validation
messages, instead of relying on
JSR-303's default
"ValidationMessages.properties" bundle
in the classpath. This may refer to a
Spring context's shared
"messageSource" bean, or to some
special MessageSource setup for
validation purposes only.
NOTE: This feature requires Hibernate
Validator 4.1 or higher on the
classpath. You may nevertheless use a
different validation provider but
Hibernate Validator's
ResourceBundleMessageInterpolator
class must be accessible during
configuration.
Specify either this property or
"messageInterpolator", not both. If
you would like to build a custom
MessageInterpolator, consider deriving
from Hibernate Validator's
ResourceBundleMessageInterpolator and
passing in a Spring
MessageSourceResourceBundleLocator
when constructing your interpolator.
You can specify your custom message.properties(or .xml) by invoking this method... like this...
my-beans.xml
<bean name="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="validationMessageSource">
<ref bean="resourceBundleLocator"/>
</property>
</bean>
<bean name="resourceBundleLocator" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
answered 2010-11-22T16:13:44.863