国际化切换

根据浏览器,语言设置的信息
自动的切换国际化支持

也可以根据用户选择
来切换国际化支持

Locale,表示区域信息对象
LocaleResolver,用来获取区域信息对象

自动配置
WebMvcAutoConfiguration
localeResolver

如果,配置了
就用固定的

如果,没有配置
就使用AcceptHeaderLocaleResolver

AcceptHeaderLocaleResolver

resolveLocale
解析区域信息

解析方式,从request请求头中,获取区域信息
默认,就是根据请求头

带来的区域信息,获取Locale进行国际化

点击连接,实现切换国际化
可以更换掉,区域信息解析器

使用自定义的区域信息解析器
不使用默认的

实现方式
可以在连接上携带,区域信息

<button class="btn btn-lg btn-primary btn-block" type="submit" th:text="#{login.btn}">Sign in</button>
<p class="mt-5 mb-3 text-muted">© 2017-2018</p>
<a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>


区域信息解析器
MyLocaleResolver
判断参数l的值,是否为空

如果,为空
使用系统默认的区域信息解析器

如果,不为空
获取区域信息,语言代码+国家代码

使用自定义的区域信息解析器

package com.atguigu.springboot.component;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 {@Overridepublic Locale resolveLocale(HttpServletRequest request) {String l = request.getParameter("l");Locale locale = Locale.getDefault();if(!StringUtils.isEmpty(l)){String[] split = l.split("_");locale = new Locale(split[0],split[1]);}return locale;}@Overridepublic void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {}
}

添加到容器
默认的解析器

根据@ConditionalOnMissingBean
检查已经存在区域信息解析器
就不再创建,默认的解析器

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
//@EnableWebMvc   全面接管SpringMVC
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {@Beanpublic LocaleResolver localeResolver() {return new MyLocaleResolver();}}

Spring boot国际化切换相关推荐

  1. Spring Boot国际化支持

    文章目录 添加Maven支持 LocaleResolver LocaleChangeInterceptor 定义Message Sources Controller文件 html文件 运行应用程序 S ...

  2. 玩转spring boot——国际化

    前言 在项目开发中,可能遇到国际化的问题,而支持国际化却是一件很头疼的事.但spring boot给出了一个非常理想和方便的方案. 一.准备工作 pom.xml: <?xml version=& ...

  3. spring boot 动态切换数据源实现多租户开发

    之前的文章有介绍过spring boot 动态切换数据源spring boot 动态切换数据源(数据源信息从数据库中读取)_lgq2016的博客-CSDN博客,今天简单介绍一下动态数据源切换实战,主要 ...

  4. Spring boot国际化

    国际化 根据浏览器,语言设置的信息 自动切换国际化支持 Spring MVC实现过程 1.编写国际化配置文件 2.使用ResourceBundleMessageSource管理国际化资源文件 3.在页 ...

  5. Spring Boot国际化(i18n)

    国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不 ...

  6. spring boot 国际化

    国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不 ...

  7. spring boot 动态切换数据源(数据源信息从数据库中读取)

    项目要求从多个源库(oracle,haha,pg)里面读取schema,table,字段等信息,spring提供了AbstractRoutingDataSource类实现动态数据源,下面就简单介绍一下 ...

  8. Spring Boot——国际化

  9. Spring boot实现国际化

    Spring boot国际化支持 当我们web项目涉及到国外部署或者国外用户使用时,需要展示不同语言信息,所以就需要国际化支持,下面将讲解Springboot国际化支持操作 1. 修改Springbo ...

最新文章

  1. Java内存模型与线程
  2. android monkey原理_Monkey与Appium的使用
  3. matplotlib模块学习
  4. 如何高效的学习掌握新技术
  5. POPUP_GET_VALUES_DB_CHECKED’
  6. 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】
  7. Python笔记(6)-输入输出
  8. The Zen of Python
  9. 使用sstableloader恢复Cassandra Priam备份
  10. Win11任务栏一直转圈圈的解决方法
  11. oracle 触发器写法|oracle trigger 语法
  12. 为啥这个月流量,感觉跑得特别快
  13. 图书管理系统(个人)
  14. 海康监控摄像头能做视频直播那些事!
  15. 深入理解机械系统的模态与振动
  16. SAP 会计科目表并存时会计科目映射
  17. 计算机没有管理无线网络,电脑连接无线网络时,提示你没有首选无线网络怎么办...
  18. wordpress文章页面添加字体增大减小链接
  19. 功不唐捐——高兴的一天
  20. 华为云服务器销售话术技巧,云服务器销售话术

热门文章

  1. 非常复杂,上双11数据大屏背后的秘密:大规模流式增量计算及应用
  2. C语言中类型使用的问题
  3. Leetcode4-寻找两个正序数组的中位数原理及代码实现
  4. C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型
  5. Docker (3)核心概念
  6. 跨链(5)“蚂蚁区块链”之跨链系统框架
  7. C++ Primer 5th笔记(9)chapter9 顺序容器 vector 容器的自增长 容器适配器
  8. 《研磨设计模式》chap3 外观模式Facade
  9. 汉字输入练习 TypeChinese.java
  10. 基于Kubernetes1.20.1版本开发调试环境搭建