SpringBoot的Web开发入门案例2—国际化

改造logintest项目:SpringBoot的Web开发入门案例1
地址:https://blog.csdn.net/BLU_111/article/details/105461258

  1. resources目录下新建 i18n 文件夹
  2. 创建 login.properties 默认中文资源文件
login.title=\u7528\u6237\u767B\u5F55
login.uname=\u7528\u6237\u540D/\u90AE\u7BB1
login.pwd=\u5BC6\u7801
login.loginBtn=\u767B\u5F55
login.registBtn=\u6CE8\u518C
  1. 创建 login_zh_CN.properties 中文资源文件(和login.properties文件内容一致)
login.title=\u7528\u6237\u767B\u5F55
login.uname=\u7528\u6237\u540D/\u90AE\u7BB1
login.pwd=\u5BC6\u7801
login.loginBtn=\u767B\u5F55
login.registBtn=\u6CE8\u518C
  1. 创建 login_en_US.properties 英文资源文件
login.title=Login In
login.uname=uname/email
login.pwd=passwd
login.loginBtn=Login
login.registBtn=Register
  1. 修改 application.yml 配置文件,添加资源文件路径配置
server:port: 8088spring:thymeleaf:cache: falsemessages:basename: i18n/login
  1. 改造 login.html ,添加中英文切换超链接,以 “用户登录” 为例,通过 th:text="#{login.title} 替换成对资源文件值的引用。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"></meta>
<title>Spring Boot Web 开发测试</title>
<link rel="stylesheet"th:href="@{webjars/bootstrap/3.3.7/css/bootstrap.min.css}" />
<link rel="stylesheet"th:href="@{webjars/bootstrap/3.3.7/css/bootstrap-theme.min.css}" />
<script type="text/javascript"th:src="@{webjars/jquery/1.11.1/jquery.min.js}"></script>
<script type="text/javascript"th:src="@{webjars/bootstrap/3.3.7/js/bootstrap.min.js}"></script>
<script type="text/javascript">$(function() {$("#loginbtn").click(function() {var loginName = $("#loginName");var password = $("#password");var msg = "";if (loginName.val() == "") {msg = "登录名不能为空!";loginName.focus();} else if (password.val() == "") {msg = "密码不能为空!";password.focus();}62if (msg != "") {alert(msg);} else {$("#loginform").submit();}})})
</script>
</head>
<body><div class="container"><div class="row"><!-- 页面标题 --><div class="page-header"><h2 th:text="#{login.title}">用户登录</h2><form class="form-horizontal" action="login" method="post"id="loginform"><div class="form-group"><div class="input-group col-md-4"><span class="input-group-addon"> <iclass="glyphicon glyphicon-user"></i></span> <input class="form-control" placeholder="用户名/邮箱" type="text"name="loginName" id="loginName" th:placeholder="#{login.uname}" /></div></div><div class="form-group"><div class="input-group col-md-4"><span class="input-group-addon"><iclass="glyphicon glyphicon-lock"></i></span> <inputclass="form-control" placeholder="密码" type="password"name="password" id="password" th:placeholder="#{login.pwd}" /></div></div><p  th:if="${not #strings.isEnpty(errorMsg)}" style="color: red">[[${errorMsg}]]</p><div class="form-group"><div class="col-md-4"><div class="btn-group btn-group-justified"><div class="btn-group"><button type="button" class="btn btn-success" id="loginbtn"><span class="glyphicon glyphicon-log-in"th:text="#{login.loginBtn}"></span>&nbsp;</button></div><div class="btn-group"><button type="button" class="btn btn-danger" id="registerbtn"><span class="glyphicon glyphicon-edit"th:text="#{login.registBtn}"></span>&nbsp;</button></div></div></div></div></form><div><div><a href="/toLogin?lang=zh_CN">中文</a> <a href="/toLogin?lang=en_US">英文</a></div></div></div></div></div>
</body>
</html>
  1. 创建MyLocaleResolver类,该类继承自LocaleResolver,并 implement 两个方法,具体只需实现resolveLocale(HttpServletRequest request) 方法:
package com.blu.util;import java.util.Locale;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;public class MyLocaleResolver implements LocaleResolver {@Overridepublic Locale resolveLocale(HttpServletRequest request) {String lang = request.getParameter("lang");Locale local = Locale.getDefault();if (!StringUtils.isEmpty(lang)) {String[] lan = lang.split("_");local = new Locale(lan[0], lan[1]);}return local;}@Overridepublic void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {}
}
  1. 为了使 MyLocaleResolver 类生效,需要创建一个配置类 MyConfig (注意这里的方法名只能叫 localeResolver() )
package com.blu.conf;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;import com.blu.util.MyLocaleResolver;@Configuration
public class MyConfig {/** ! 注意这里的方法名只能叫localeResolver()*/@Beanpublic LocaleResolver localeResolver() {return new MyLocaleResolver();}
}
  1. 改造完成,启动项目,访问:http://localhost:8088/toLogin
  2. 点击英文超链接可切换语言为英文

SpringBoot的Web开发入门案例2—国际化相关推荐

  1. SpringBoot的Web开发入门案例1

    SpringBoot的Web开发入门案例1-登录和页面数据遍历读取 新建maven项目:logintest pom.xml文件: <project xmlns="http://mave ...

  2. SpringBoot的Web开发入门案例9—数据访问

    SpringBoot的Web开发入门案例9-数据访问 创建一个springboot项目(打包方式为jar包): 勾选Spring Web选项,勾选JDBC API和MySQL Driver pom文件 ...

  3. SpringBoot的Web开发入门案例7—WebMvcConfigurer配置类

    SpringBoot的Web开发入门案例7-WebMvcConfigurer配置类 WebMvcConfigurer接口的几个常用方法: addViewControllers:配置请求路径和页面的映射 ...

  4. SpringBoot的Web开发入门案例3—异常处理

    SpringBoot的Web开发入门案例3-异常处理 SpringBoot 默认404界面(由org.springframework.boot.autoconfigure.web.ErrorMvcAu ...

  5. SpringBoot的Web开发入门案例6—替换默认容器Tomcat

    SpringBoot的Web开发入门案例6-替换默认容器Tomcat为Jetty Spring Boot默认是使用Tomcat作为内嵌的Servlet容器的,如需修改为Jetty,只要修改pom文件即 ...

  6. SpringBoot的Web开发入门案例5—注册Servlets, Filter, Listener

    SpringBoot的Web开发入门案例5-注册Servlets, Filter, Listener 注册Servlet 创建MyServlet类 package com.blu.conf;impor ...

  7. SpringBoot的Web开发入门案例8—支持jsp

    新建springboot工程:springboot_jsp,打包方式为war 导入web模块: 生成的项目结构: 包含启动类SpringbootJspApplication: package com. ...

  8. AOP配置开发入门案例

    该AOP开发入门案例采用XML文件方式配置开发(非注解方式)共包含一个xml文件和4个Java类,创建好web工程后引入相应jar包(文末会给出),建好包(若自定义包名注意更改类中的包名),将xml文 ...

  9. EAS的WEB开发入门

    web入门案例文档 web开发入门文档样例 web重写保存提交等方法,在保存提交时改变单据状态 在实体的ContrallerBean重写save和submit方法 如果需要改变工作流审核时的其他状态要 ...

最新文章

  1. postman 获取session_【接口测试】Postman入门10 Postman中的Session
  2. android permission 访问权限大全
  3. docker搭建 LNMP 环境
  4. Struts2.0实现的文件上传(单附件和多附件)以及附件下载功能
  5. 关于Linux的基础中的基础和一些基础小命令
  6. 问题 C: 编写函数:字符串的复制 之一 (Append Code)
  7. 智能指针(三):unique_ptr使用简介
  8. system_Class类说明文档
  9. TeeChart.NET 4.2021.11.2 Crack
  10. ESP8285烧写问题备忘
  11. 桌面计算机密码修改频率,教大家如何更改电脑的显示频率
  12. oracle证件号脱敏,oracle 数据脱敏
  13. 国考省考行测:关联词分析法,转折,总结,条件,递进,并列,各种关联词的典型词语和重点在哪
  14. 为什么站点访问慢?请收好这份 Web 服务器性能提升的总结
  15. node-java_node-jvm
  16. shell脚本实现通过ssh跳板机(动态密码)一键登陆服务器(相关问题与解决方案)
  17. linux echo 时间
  18. 神州战神系列装系统过程,其他电脑大同小异
  19. 儿童护眼台灯哪个品牌好?2023品牌护眼台灯最新排行榜
  20. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛-白色相簿

热门文章

  1. C# Winform Chart控件用法4之饼状图
  2. 2021年学计算机玩吗,2021年计算机学校好吗
  3. 华为云CDN加速多场景多服务,为你一键加速
  4. 三星分屏多任务(MULTIWINDOW)引发的问题
  5. 渗透之——SQL语句生成一句话
  6. 12个关于移动 H5 开发的采坑问题汇总
  7. python自玩mp3播放
  8. 我的2017---远航迷航
  9. 【Python入门基础】Pycharm格式化代码常用快捷键
  10. 昆船智能上市:预计年营收19亿到22.5亿 市值48亿