学习springboot时候,⾃定义国际化不⽣效问题.
⽤的是springboot最新的稳定版本,在使⽤⾃定义localResolver实现国际化时,出现了错误,参照⽹上的⽂章,发现并不⽣效
未实现页⾯按照请求参数的值来显⽰中⽂还是英⽂,出现这种问题进⾏了以下排错:
spring boot选择题 1.⾸先想到的是忘记写注解,经检查并没有存在类似问题
2.可能存在添加注解的时候import包出现问题,经检查也没有存在类似问题
3.可能是⾃⼰的逻辑有些混乱,于是重新梳理⾃⼰的代码逻辑,最后检查也没有错误
4.实在不到什么原因了,最后决定看看官⽅⽂档,毕竟⽹上的很多解答可以追述到官⽅⽂档中
在WebMvcAutoConfiguration⾥边⾃动配置的localeResolver,可以清楚的看到如下代码如果⾃⼰定义了localeResolver加载⾃⼰的,否则加载系统的
public LocaleResolver localeResolver() {
if (LocaleResolver() == org.springframework.boot.autoconfigure.web.servlet.Web
MvcProperties.LocaleResolver.FIXED) { return new FixedLocaleResolver(Locale());
} else {
AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
localeResolver.setDefaultLocale(Locale());
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时⽅法名必须⼀致,检查⾃⼰的发现确实不对
改过后⽅法名的如下
⼤致⼀看没有问题,但细看确实是⽅法名拼写错误,改过来即可实现国际化
总结:以后遇到这种情况情况少,但仍需注意,注意书写!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论