Spring MVC自定义错误和国际化
问题内容:
在我的Web应用程序中,我使用批注处理错误。一切正常,我可以通过“ message”参数使用自定义消息。
@Digits(fraction = 0, integer = 3, message="my custom error message...")
private String price;
现在,我正在尝试使用.properties文件来对此消息进行国际化,但是我确实错过了一些东西,因此无法正常工作。
我的spring配置:
<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”文件中)对消息进行了国际化,并且它们可以正常工作。
问题答案:
我的应用程序中有一个类似的问题,希望对您有所帮助。
如该线程中所述,http :
//forum.springsource.org/showthread.php?73240-Roo-JSR-303-Validations-and-
Localization
,您需要:
- 在文件ValidationMessages.properties中定义注释所引用的错误消息
- 在注释中,请参考大括号中包含的错误消息键:
@Digits(fraction = 0, integer = 3, message="{message.key}")
希望这可以帮助。