我正尝试使用验证错误消息基于当前的活动语言环境,如下所示
@Entity
@Table(name = "footable")
public class TestModel extends BaseEntity {
@NotEmpty(message = "${notEmpty}")
private String name;
}
但是似乎无法解析属性,我得到
EL expression '${notEmpty}' references an unknown property
我在notEmpty
和messages.properties
中都定义了application.properties
我还尝试使用@Value
中的lombok
,这会导致编译时错误而不是运行时错误。
答案 0 :(得分:1)
添加到您的配置
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Bean
public LocalValidatorFactoryBean validatorFactoryBean() {
LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean();
validatorFactoryBean.setValidationMessageSource(messageSource());
validatorFactoryBean.setApplicationContext(context);
return validatorFactoryBean;
}
从注释中删除消息
public class TestModel extends BaseEntity {
@NotEmpty
private String name;
}
向messages.properties
添加消息为
NotEmpty.testModel.name=The message of error
NotEmpty.testModel.name
之后是naming convention。
答案 1 :(得分:0)
不需要$
,请改用message = "{notEmpty}"
。