【问题标题】:JAX-RS Bean Validation Error Message InternationalizationJAX-RS Bean 验证错误消息国际化
【发布时间】:2021-01-26 19:16:43
【问题描述】:
我有一个 SpringBoot 应用程序。具有此属性的 bean:
@Positive(message = "{signup.form.error.city.missing}")
private Long regionId;
但如果出现错误,我会在浏览器上看到:
{signup.form.error.city.missing}
不是属性文件的值
【问题讨论】:
标签:
java
spring
spring-boot
spring-mvc
internationalization
【解决方案1】:
要在属性文件中使用自定义名称消息,您需要定义 LocalValidatorFactoryBean 并注册 messageSource:
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@Configuration
public class WebMvcConfiguration {
private final MessageSource messageSource;
public WebMvcConfiguration(MessageSource messageSource) {
this.messageSource = messageSource;
}
@Bean
public LocalValidatorFactoryBean getValidator() {
LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
bean.setValidationMessageSource(messageSource);
return bean;
}
}
它现在将看到您在 property 文件中定义的值。