Spring Validation为我的消息代码添加后缀

时间:2017-03-14 13:41:34

标签: java spring forms validation

我正在尝试使用Spring Validator实现表单验证,遵循dzonemkyong的这些教程。 似乎在表单提交时调用 Validator 方法验证,抛出错误,但消息代码与我指定的不同。
我有一个名为歌曲的bean,其属性名称为 title 在我的验证器中,我有     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", "title.required");

然而,我收到此错误信息
org.springframework.context.NoSuchMessageException: No message found under code 'title.required.song.title' for locale 'en_US'.

它会搜索 title.required.song.title 下的消息,而不是 title.required ,我猜想文件名为messages_en_US.properties

如何更改此行为?

我的 messages.properties 放在/src/文件夹下 title.required=Ce champ est obligatoire

@Entity
public class Song {

@Id
@GeneratedValue
private Long id;

private String title;
//and other stuff

1 个答案:

答案 0 :(得分:1)

将此添加到您的配置xml:

<bean id="messageSource"
     class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
     p:basename="classpath:messages" />

或使用config java添加此行

 @Bean(name = "messageSource")
    public ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasenames("classpath:messages");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }

最好的问候