spring·自定义国际化

  • 添加自己的LocaleResolver
package com.example.demo.configuration;

import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
public class myLocaleResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
        String th=httpServletRequest.getParameter("l");
        Locale locale=Locale.getDefault();
        if(!StringUtils.isEmpty(th)){
           String[]  spit=th.split("_");
           locale=new Locale(spit[0],spit[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

    }
}

  • 添加自己的LocaleResolver后,spring自带的LocaleResolver不生效
  • 将自己的LocaleResolver ->myLocaleResolver 添加到spring 容器中
 @Bean
    public LocaleResolver localeResolver(){
        return new myLocaleResolver();
    }
  • 创建配置文件设置国际化信息,配置文件名字中要有
    zh_CN 代表中国
    en_US 代表美国

  • 如图
    在这里插入图片描述

  • 在配置文件中设置信息,添加中文,英文和缺省值
    -在这里插入图片描述

  • 在配置文件中加入 spring.messages.basename=login

  • 前端代码
    在这里插入图片描述


版权声明:本文为hwxjava原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。