解决校验失败时,提示信息国际化失效问题-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

解决校验失败时,提示信息国际化失效问题

简介: SpringBoot校验(Validator)失败,使用MessageSource国际化失效问题记录

前言:

spring-boot-validator参数校验系列(1)--------基本参数校验

spring-boot-validator参数校验系列(4)--------自定义参数校验异常

SpringBoot下国际化配置

一、问题场景

结合前言中教程,想实现校验国际化提示,根据步骤一步一步来,可国际化未生效。

查阅资料得知,需要重写WebMvcConfigurer#getValidator方法!!!

@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {

    @Autowired
    private MessageSource messageSource;

    /**
     * 设置MessageSource文件位置
     * @return
     */
   /* @Bean
    public MessageSource messageSource(){
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setDefaultEncoding("UTF-8");
        messageSource.setBasenames("classpath:i18n/messages");
        return messageSource;
    }*/

    /**
     * 这里特别要说明下,这里需要重写 WebMvcConfigurer#getValidator方法才能使校验时国际化生效!!!
     * @return
     */
    @Override
    public Validator getValidator(){
        LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
        localValidatorFactoryBean.setValidationMessageSource(messageSource);
        return localValidatorFactoryBean;
    }

}

PostMan访问

英文国际化

image.png

中文国际化

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章