在休眠验证中根据语言环境定义消息
define messages based on locale in hibernate validations
我正在尝试使用基于当前活动语言环境的验证错误消息,如下所示
@Entity
@Table(name = "footable")
public class TestModel extends BaseEntity {
@NotEmpty(message = "${notEmpty}")
private String name;
}
但是它似乎无法解析属性,我得到
EL expression '${notEmpty}' references an unknown property
我在 messages.properties
和 application.properties
中都定义了 notEmpty
我还尝试使用 lombok
中的 @Value
,这会导致编译时错误而不是运行时错误。
不需要 $
,请使用 message = "{notEmpty}"
。
添加到您的配置
@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 之后。
我正在尝试使用基于当前活动语言环境的验证错误消息,如下所示
@Entity
@Table(name = "footable")
public class TestModel extends BaseEntity {
@NotEmpty(message = "${notEmpty}")
private String name;
}
但是它似乎无法解析属性,我得到
EL expression '${notEmpty}' references an unknown property
我在 messages.properties
和 application.properties
notEmpty
我还尝试使用 lombok
中的 @Value
,这会导致编译时错误而不是运行时错误。
不需要 $
,请使用 message = "{notEmpty}"
。
添加到您的配置
@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 之后。