问题:SpringBoot 国际化切换语言切换不了
自定义了区域解析器
/**
* 自定义区域解析器
*/
public class MyLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest httpServletRequest) {
String l = httpServletRequest.getParameter("l");//获取请求参数中的区域信息
Locale locale = Locale.getDefault();//如果没有则用默认的
if (!StringUtils.isEmpty(l)){//如果有用自己配置的
String[] split = l.split("_");//拿到语音信息和国家信息
locale = new Locale(split[0],split[1]);//创建区域信息对象,第一个值语言代码,第二个值国家代码
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
注册Bean
@Bean//将区域信息对象注册到容器
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
原因就是Bean的方法名必须写localeResolver否则SpringBoot无法识别