Spring Boot开发简单网页(员工管理系统)(四):国际化
国际化
- 1、编码格式
- 2、编写配置文件
- 3、配置国际化资源文件
- 4、中英文切换
国际化,也就是页面可以进行中英文切换
1、编码格式
首先需要保证项目所有的编码格式都是UTF-8
2、编写配置文件
在src\main\resources
目录下面创建文件夹i18n
,并创建下面三个配置文件,用来配置语言:
login.properties
:无语言配置时候生效login_en_US.properties
:英文生效login_zh_CN.properties
:中文生效
命名方式是下划线的组合:文件名_语言_国家.properties
以此方式命名,IDEA会帮我们识别这是个国际化配置包,因此自动将他们合并到Resources Bundle 'login'
下
点击Resources Bundle
可以快速配置中英文对应
配置完成之后,我们首页中所有元素的配置如下
然后打开三个配置文件的查看其中的文本内容,可以看到已经做好了全部的配置
login.properties
login.tip=请登录
login.password=密码
login.remember=记住我
login.btn=登录
login.username=用户名
login_en_US.properties
login.tip=Please sign in
login.password=password
login.remember=remember me
login.btn=login
login.username=username
login_zh_CN.properties
login.tip=请登录
login.password=密码
login.remember=记住我
login.btn=登录
login.username=用户名
3、配置国际化资源文件
怎么让我们的配置文件生效呢?在application.properties
文件中添加下面这行来绑定配置文件的位置。
# 我们的配置文件的真实位置
spring.messages.basename=i18n.login
我们还需要修改index.html
从而支持Thymeleaf模板引擎,Thymeleaf语法中消息表达式是用#{...}
来表示,因此我们修改index.html
相关代码,注意元素值的位置。
......<body class="text-center"><form class="form-signin" action="dashboard.html"><img class="mb-4" th:src="@{/img/bootstrap-solid.svg}" alt="" width="72" height="72"><h1 class="h3 mb-3 font-weight-normal" th:text="#{login.tip}">Please sign in</h1><input type="text" class="form-control" th:placeholder="#{login.username}" required="" autofocus=""><input type="password" class="form-control" th:placeholder="#{login.password}" required=""><div class="checkbox mb-3"><label><input type="checkbox" value="remember-me" > [[#{login.remember}]]</label></div><button class="btn btn-lg btn-primary btn-block" type="submit" >[[#{login.btn}]]</button><p class="mt-5 mb-3 text-muted">© 2017-2018</p><a class="btn btn-sm">中文</a><a class="btn btn-sm">English</a></form></body>......
重启项目,我们再访问http://localhost:8080/kuang/
,可以发现我们定制的首页成中文的了
4、中英文切换
我们想要实现自定义的国际化资源生效,只需要编写一个自己的地区解析器,继承LocaleResolver
接口,重写其方法即可。
在com.kuang.config
包下创建一个组件MyLocaleResolver.java
,作为自己的国际化地区解析器。在我们自定义的地区解析器MyLocaleResolver
中,需要处理点击中英文切换按钮时的带参数链接请求
package com.kuang.controller;import org.springframework.web.servlet.LocaleResolver;
import org.thymeleaf.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;public class MyLocaleResolver implements LocaleResolver {//解析请求@Overridepublic Locale resolveLocale(HttpServletRequest httpServletRequest) {//获取请求中的语言参数String language = httpServletRequest.getParameter("l");Locale locale = Locale.getDefault();//如果没有就使用默认//如果请求的链接携带了国际化参数if(!StringUtils.isEmpty(language)){//zh_CN//分割请求的字符串String[] split = language.split("_");//国家,地区locale = new Locale(split[0],split[1]);}return locale;}@Overridepublic void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {}
}
然后我们需要把国际化组件MyLocaleResolver放到Spring容器中@Bean
里面,也就是在com.kuang.config
包下的MyMvcConfig.java
中添加下面代码,就可以使我们自定义的国际化组件生效
//自定义国际化组件生效@Beanpublic LocaleResolver localeResolver(){return new MyLocaleResolver();}
同时,index.html
编写了对应的请求跳转
- 如果点击中文按钮,则跳转到
/index.html(l='zh_CN')
页面
如果点击English按钮,则跳转到/index.html(l='en_US')
页面
<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>
我们重启项目,访问首页时点击中文和English按钮就可以进行中英文切换了
点击中文按钮,跳转到http://localhost:8080/kuang/index.html?l=zh_CN
,显示为中文
点击English按钮,跳转到http://localhost:8080/kuang/index.html?l=en_US
,显示为英文
Spring Boot开发简单网页(员工管理系统)(四):国际化相关推荐
- Spring Boot 开发web网页(helloworld为例)
Spring Boot 开发入门--- helloworld web 一.使用IntellijIDEA建立第一个spring boot 项目(helloworld) 1.创建一个spring boot ...
- mysql员工管理系统_简单的员工管理系统(Mysql+jdbc+Servlet+JSP)
java java8 java开发 简单的员工管理系统(Mysql+jdbc+Servlet+JSP) 员工管理系统 因为学业要求,需要完成一个过关检测,但是因为检测之前没有做好准备,且想到之前用my ...
- 真的简单,单手用Spring Boot 开发一个微信小程序
前言 嗨,大家好,现在微信使用的用户很多,作为开发人员也可以建立一个自己的微信小程序,本期与大家分享一下作者建立微信小程序的开发流程. 申请 百度搜索微信公众号平台,然后扫码登录注册一个微信公 ...
- 基于Spring boot的图书馆图书借阅管理系统的设计与实现
作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路 关注作者有好处 ...
- 学习笔记-Spring Boot 开发 RESTful Web API(一)
题记: 本篇是Spring Boot 开发学习系列中基础知识学习的一部分,为 RESTful Web API 相关基础知识,为实践操作奠定理论基础. REST不是一个标准,而是一种软件应用架构风格.基 ...
- 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建
从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...
- 前后端分离 -- 深入浅出 Spring Boot + Vue + ElementUI 实现相册管理系统【文件上传 分页 】 文件上传也不过如此~
前后端分离 – 深入浅出系列 Spring Boot + Vue + ElementUI 实现相册管理系统[文件上传 分页 ] 文件上传也不过如此~ 引言 Hello,我是Bug终结者,一名热爱后端J ...
- 2022 年学习 Spring Boot 开发的最佳书籍
在我们之前的文章中,我们查看了学习 Java 编程的必读书籍我们在其中探索了一些您可以利用的资源来加快 Java 开发的速度.在此基础上,在用 vanilla Java 编写一段时间后,您将意识到组织 ...
- 如何使用 Spring Boot 开发邮件系统?
本文来自作者在 GitChat 上的精彩分享<使用 Spring Boot 开发邮件系统> 1. 前言 互联网发展到现在,邮件服务已经成为互联网企业中必备功能之一,应用场景非常广泛,比较常 ...
最新文章
- python stm32-尝试一下使用Python来开发STM32
- CentOs7下lnmp环境安装
- 动态给div追加html代码,javascript – 动态添加/删除div到html
- java中方法的具体化_我为什么要关心Java没有具体化的泛型?
- 学习使用RIA Framework Flex创建MySQL管理UI(初学Flex实例教程)
- Sharepoint学习笔记 –架构系列—10 Sharepoint的服务器端对象模型(Server Object Model) 2.内容层次结构
- PetaPoco初体验(转)
- 2015/8/29 Python基础(3):数值
- Oracle触发器4-数据库事件触发器
- UVa834 Continued Fractions【连分数】
- linux mint php mysql_Installing LAMP (Linux, Apache, MySQL and PHP) On Linux Mint
- iTween介绍和用法
- Summarization 文本摘要进展
- html如何设置打印分页打印出来,网页中如何用 CSS 设置打印分页符
- Java 设置Word页边距、页面大小、页面方向、页面边框
- 使用Pyqt5制作GUI界面,并使用pyinstaller打包成exe文件
- 图解研发团队架构、流程和绩效管理
- win10 ubuntu双系统安装与卸载
- word中如何美观插入代码?
- 开年后找工作,越找越迷茫?弄懂这3点,让你少奋斗10年