如何使用注释spring配置消息属性以进行验证

时间:2014-03-26 07:53:48

标签: java spring annotations spring-data-rest

我正在使用spring-data-rest,我需要使用注释配置messages.properties,我在配置类中所做的是,

@Bean public ReloadableResourceBundleMessageSource messageSource(){
    ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource();
    reloadableResourceBundleMessageSource.setBasename("messages");
    return reloadableResourceBundleMessageSource;
}

并尝试访问 messages.property 文件中的属性

notnull.empty=rr is required.

如,

ValidationUtils.rejectIfEmptyOrWhitespace(arg1, "rr", "notnull.empty", "test is required.");

在我的验证类中。但是只收到默认消息,如果我删除了默认消息,则收到null。是否可以通过注释配置验证消息属性文件?我是泉水的新手,所以我不敢打赌。提前谢谢。

1 个答案:

答案 0 :(得分:1)

问题是它无法找到消息文件。需要提供setBasename方法的正确位置路径。你可以用几种方式做到,我会告诉你两个:

1.使用项目根目录中的路径,如:

    reloadableResourceBundleMessageSource.setBasename("/WEB-INF/messages/messages")‌​;

2.在类路径中使用路径,如:

    reloadableResourceBundleMessageSource.setBasename("classpath:/messages/messages")‌​;

我更喜欢第一个,因为服务器用于缓存从类路径加载的文件,并且更难以捕获消息文件中的更改。