【问题标题】: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 文件中定义的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多