我正在尝试使用Spring Validator实现表单验证,遵循dzone和mkyong的这些教程。
似乎在表单提交时调用 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
答案 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;
}
最好的问候