springboot 国际化,出现一堆问号,是路径问题还是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 国际化,出现一堆问号,是路径问题还是怎么回事相关的知识,希望对你有一定的参考价值。

问号是中文乱码,设置一下ide的编码格式为utf-8就行了 参考技术A 检查下你的文件路径,是不是多了一个文件夹,默认的路径在sources/i18n目录下,如果多了目录就会产生这种问题

学习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 国际化,出现一堆问号,是路径问题还是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

学习springboot时候,自定义国际化不生效问题.

spring boot + thymeleaf 3 国际化

SpringBoot国际化(jsp)

springboot写入数据库汉字变问号???

配置好环境变量后,在dos系统中输入javac测试,为什么信息都是一堆问号???

springboot开发之国际化(中英文切换)