学习springboot时候,自定义国际化不生效问题.
Posted QAQqinlin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习springboot时候,自定义国际化不生效问题.相关的知识,希望对你有一定的参考价值。
用的是springboot最新的稳定版本,在使用自定义localResolver实现国际化时,出现了错误,参照网上的文章,发现并不生效
未实现页面按照请求参数的值来显示中文还是英文,出现这种问题进行了以下排错:
1.首先想到的是忘记写注解,经检查并没有存在类似问题
2.可能存在添加注解的时候import包出现问题,经检查也没有存在类似问题
3.可能是自己的逻辑有些混乱,于是重新梳理自己的代码逻辑,最后检查也没有错误
4.实在找不到什么原因了,最后决定看看官方文档,毕竟网上的很多解答可以追述到官方文档中
在WebMvcAutoConfiguration里边自动配置的localeResolver,可以清楚的看到如下代码如果自己定义了localeResolver加载自己的,否则加载系统的
public LocaleResolver localeResolver() {
if (this.mvcProperties.getLocaleResolver() == org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.LocaleResolver.FIXED) {
return new FixedLocaleResolver(this.mvcProperties.getLocale());
} else {
AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
localeResolver.setDefaultLocale(this.mvcProperties.getLocale());
return localeResolver;
}
}
在《Spring Boot 2 Recipes: A Problem-Solution Approach》书中提到这样一句话:
You can also define a locale resolver by registering a bean of type LocaleResolver in the web application context.
You must set the bean name of the locale resolver to localeResolver so it can be autodetected.
上述英语意思为:在自定义localeResolver时方法名必须一致,检查自己的发现确实不对
改过后方法名的如下
大致一看没有问题,但细看确实是方法名拼写错误,改过来即可实现国际化
总结:以后遇到这种情况情况少,但仍需注意,注意书写!
以上是关于学习springboot时候,自定义国际化不生效问题.的主要内容,如果未能解决你的问题,请参考以下文章