如何自定义spring MVC验证消息的资源键查找

时间:2012-07-20 10:16:50

标签: java spring-mvc bean-validation

资源键外观的默认行为似乎是在字段名称前加上约束。我想发布修复它。

public class MyForm {
    @NotEmpty
    private String name;
}

在我的messages.properties

myForm.name=The label
NotEmpty.myForm.name=Please enter your name

我想用:

myForm.name=The label
myForm.name.NotEmpty=Please enter your name

这显然是纯粹的装饰,但是我的OCD无法处理我的资源文件的外观。

我正在使用带有hibernate验证器4.3.0.Final的spring 3.1.2。它自己的应用程序使用@Configuration@EnableWebMvcWebMvcConfigurerAdapter样式配置,但我应该能够翻译任何基于xml的解决方案。

1 个答案:

答案 0 :(得分:1)

一个简单的想法是扩展DefaultMessageCodesResolver并覆盖最初的方法postProcessMessageCode()

protected String postProcessMessageCode(String code) {
    return getPrefix() + code;
}

按照你想要的方式改变它。我相信Spring会在引导时将你的MessageCodesResolver类型的bean作为默认行为。希望这会有所帮助。

Spring 3.1+中,您现在可以通过<mvc:annotation-driven />配置消息代码解析器。似乎对Java API的支持将来自3.2