使用Hibernate Validator的Spring消息插值参数替换

时间:2014-05-03 18:30:23

标签: spring hibernate validation hibernate-validator

https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/chapter-message-interpolation.html

根据hibernate验证文档,可以在错误消息中相应替换{min}和{max}参数的情况下完成以下操作。

 @Size(
            min = 2,
            max = 14,
            message = "The license plate must be between {min} and {max} characters long"
    )

我在Spring应用程序中使用此表示法但这些参数未被替换。 我回来了“牌照必须介于最小和最大字符之间”

我是否需要以不同方式配置验证器才能使其正常工作?

这是我的配置:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8"/> 
<property name="useCodeAsDefaultMessage" value="true"/>
</bean>

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

1 个答案:

答案 0 :(得分:0)

我找到原因。它是由属性&#34; useCodeAsDefaultMessage&#34;引起的,我们无法将其设置为&#34; true&#34;,只需使用默认值&#34; false&#34;。似乎如果是真的,只需从&#34; basenames&#34;中的属性文件中获取消息,并且不要使用类路径根路径中的默认消息文件或&#34; org /冬眠/验证&#34 ;!