iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring boot Thymeleaf怎么配置国际化页面
  • 361
分享到

Spring boot Thymeleaf怎么配置国际化页面

2023-07-02 18:07:18 361人浏览 独家记忆
摘要

这篇文章主要讲解了“spring boot Thymeleaf怎么配置国际化页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring boot 

这篇文章主要讲解了“spring boot Thymeleaf怎么配置国际化页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring boot Thymeleaf怎么配置国际化页面”吧!

1.编写多语言国际化配置文件

项目的类路径resources下创建名称为i18n的文件夹,并在该文件夹中根据需要编写对应的多语言国际化文件login.properties、login_zh_CN.properties和login_en_US.properties文件

login.properties

login.tip=请登录
login.username=用户名
login.passWord=密码
login.rememberme=记住我
login.button=登录

login_zh_CN.properties

login.tip=请登录
login.username=用户名
login.password=密码
login.rememberme=记住我
login.button=登录

login_en_US.properties

login.tip=Please sign in
login.username=Username
login.password=Password
login.rememberme=Remember me
login.button=Login

login.properties为自定义默认语言配置文件,login_zh_CN.properties为自定义中文国际化文件,login_en_US.properties为自定义英文国际化文件

需要说明的是,Spring Boot默认识别的语言配置文件为类路径resources下的messages.properties;其他语言国际化文件的名称必须严格按照“文件前缀名语言代码国家代码.properties”的形式命名

本示例中,在项目类路径resources下自定义了一个i18n包用于统一配置管理多语言配置文件,并将项目默认语言配置文件名自定义为login.properties,因此,后续还必须在项目全局配置文件中进行国际化文件基础名配置,才能引用自定义国际化文件

2.编写配置文件

打开项目的application.properties全局配置文件,在该文件中添加国际化文件基础名设置,内容如文件

# 配置国际化文件基础名
spring.messages.basename=i18n.login

spring.messages.basename=i18n.login”设置了自定义国际化文件的基础名。其中,i18n表示国际化文件相对项目类路径resources的位置,login表示多语言文件的前缀名。如果开发者完全按照Spring Boot默认识别机制,在项目类路径resources下编写messages.properties等国际化文件,可以省略国际化文件基础名的配置

3.定制区域信息解析器

在完成上一步中多语言国际化文件的编写和配置后,就可以正式在前端页面中结合Thymeleaf模板相关属性进行国际化语言设置和展示了,不过这种实现方式默认是使用请求头中的语言信息(浏览器语言信息)自动进行语言切换的,有些项目还会提供手动语言切换的功能,这就需要定制区域解析器了

在项目中创建名为com.laGou.config的包,并在该包下创建一个用于定制国际化功能区域信息解析器的自定义配置类MyLocalResovel

package com.lagou.config; import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;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;@Configurationpublic class MyLocalResolver implements LocaleResolver {    // 完成自定义 区域解析方式    @Override    public Locale resolveLocale(HttpServletRequest request) {        // 获取页面手动传递的语言参数值 : zh_CN   en_US   ""        String l = request.getParameter("l");        Locale locale = null;        if (!StringUtils.isEmpty(l)) {            // 如果参数不为空,就根据参数值,进行手动语言切换            String[] s = l.split("_");            locale = new Locale(s[0], s[1]);        } else {            // Accept-Language: zh-CN,zh;q=0.9            String header = request.getHeader("Accept-Language");            String[] split = header.split(",");            String[] split1 = split[0].split("-");            locale = new Locale(split1[0], split1[1]);        }        return locale;    }    @Override    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {    }    // 将自定义的LocaleResolver重新注册成一个类型为LocaleResolver的Bean组件    @Bean    public LocaleResolver localeResolver() {        return new MyLocalResolver();    }}

MyLocalResolver自定义区域解析器配置类实现了LocaleResolver接口,并重写了其中的resolveLocale()方法进行自定义语言解析,最后使用@Bean注解将当前配置类注册成Spring容器中的一个类型为LocaleResolver的Bean组件,这样就可以覆盖默认的LocaleResolver组件。其中,在resolveLocale()方法中,根据不同需求(手动切换语言信息、浏览器请求头自动切换语言信息)分别获取了请求参数l和请求头参数Accept-Language,然后在请求参数l不为空的情况下就以l参数携带的语言为标准进行语言切换,否则就定制通过请求头信息进行自动切换。

需要注意的是,在请求参数l的语言手动切换组装时,使用的是下划线“_”进行的切割,这是由多语言配置文件的格式决定的(例如login_zh_CN.properties);而在请求头参数Accept-Language的语言自动切换组装时,使用的是短横线“-”进行的切割,这是由浏览器发送的请求头信息样式决定的(例如Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7)

4.页面国际化使用

打开项目templates模板文件夹中的用户登录页面login.html,结合Thymeleaf模板引擎实现国际化功能

<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org">    <head>        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">        <meta name="viewport" content="width=device-width, initial-scale=1,shrinkto-fit=no">        <title>用户登录界面</title>        <link th:href="@{/login/CSS/bootstrap.min.css}" rel="external nofollow"  rel="stylesheet">        <link th:href="@{/login/css/signin.css}" rel="external nofollow"  rel="stylesheet">    </head>    <body class="text-center">        <!-- 用户登录fORM表单 -->        <form class="form-signin">            <img class="mb-4" th:src="@{/login/img/login.jpg}" width="72" height="72">            <h2 class="h4 mb-3 font-weight-normal" th:text="#{login.tip}">请登录</h2>            <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.rememberme}]]                </label>            </div>            <button class="btn btn-lg btn-primary btn-block" type="submit" th:text="#{login.button}">登录</button>            <p class="mt-5 mb-3 text-muted">© <span                    th:text="${currentYear}">2019</span>-<span                    th:text="${currentYear}+1">2020</span></p>            <a class="btn btn-sm" th:href="@{/toLoginPage(l='zh_CN')}" rel="external nofollow" >中文</a> <!--注意这个路径是我们controller访问页面的路径,不同的是这次携带了参数,可以帮我们用来区分locale-->            <a class="btn btn-sm" th:href="@{/toLoginPage(l='en_US')}" rel="external nofollow" >English</a>        </form>    </body></html>

使用Thymeleaf模板的#{}消息表达式设置了国际化展示的部分信息。在对记住我rememberme国际化设置时,需要国际化设置的rememberme在input标签外部,所以这里使用了行内表达式[[#login.rememberme}]]动态获取国际化文件中的login.rememberme信息。另外,在表单尾部还提供了中文、English手动切换语言的功能链接,在单击链接时会分别携带国家语言参数向“/”路径请求跳转,通过后台定制的区域解析器进行手动语言切换。

注:省略了controller控制层处理

5.整合效果测试

Spring boot Thymeleaf怎么配置国际化页面

点击后

Spring boot Thymeleaf怎么配置国际化页面

单击“English”链接进行语言国际化切换时携带了指定的“l=zh_CN”参数,后台定制的区域解析器配置类MyLocalResovel中的解析方法会根据定制规则进行语言切换,从而达到了手动切换国际化语言的效果

感谢各位的阅读,以上就是“Spring boot Thymeleaf怎么配置国际化页面”的内容了,经过本文的学习后,相信大家对Spring boot Thymeleaf怎么配置国际化页面这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Spring boot Thymeleaf怎么配置国际化页面

本文链接: https://www.lsjlt.com/news/343739.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring boot Thymeleaf怎么配置国际化页面
    这篇文章主要讲解了“Spring boot Thymeleaf怎么配置国际化页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring boot ...
    99+
    2023-07-02
  • Spring boot Thymeleaf配置国际化页面详解
    目录1.编写多语言国际化配置文件2.编写配置文件3.定制区域信息解析器4.页面国际化使用5.整合效果测试1.编写多语言国际化配置文件 在项目的类路径resources下创建名称为i1...
    99+
    2024-04-02
  • Springboot Thymeleaf如何配置国际化页面
    本文小编为大家详细介绍“Springboot Thymeleaf如何配置国际化页面”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot Thymeleaf如何配置国际化页面”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-07-06
  • springboot页面国际化配置指南
    目录前言方法如下总结前言 前一段时间做了一个项目,需要解决中文、繁体、英文的国际化问题,所以本文将详细介绍springboot页面国际化配置的过程 方法如下 1.引入依赖pom.xm...
    99+
    2024-04-02
  • springboot页面国际化如何配置
    这篇文章主要介绍了springboot页面国际化如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springboot页面国际化如何配置文章都会有所收获,下面我们一起来看看吧。方法如下引入依赖pom.xml...
    99+
    2023-06-29
  • spring中怎么设置MVC国际化
    本篇文章给大家分享的是有关spring中怎么设置MVC国际化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、基于浏览器语言的国际化配置使用Spring的MVC,并且配置中有配...
    99+
    2023-06-17
  • spring security国际化及UserCache的配置和使用
    国际化配置<!-- 定义上下文返回的消息的国际化 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableRe...
    99+
    2023-05-31
    spring security 国际化
  • Spring boot读取外部化怎么配置
    本篇内容主要讲解“Spring boot读取外部化怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring boot读取外部化怎么配置”吧!1. Propertie...
    99+
    2023-06-29
  • Spring Boot+Swagger_UI怎么配置
    本篇内容主要讲解“Spring Boot+Swagger_UI怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Boot+Swagger_UI怎么配置”吧!一:pom.xml ...
    99+
    2023-06-05
  • spring boot+thymeleaf+bootstrap怎么编写后台管理系统界面
    这篇文章主要介绍“spring boot+thymeleaf+bootstrap怎么编写后台管理系统界面”,在日常操作中,相信很多人在spring boot+thymeleaf+bootstrap怎么编写后台管理系统界面问题上存在疑惑,小编...
    99+
    2023-05-30
    spring boot thymeleaf
  • 利用Spring MVC怎么实现国际化
    这期内容当中小编将会给大家带来有关利用Spring MVC怎么实现国际化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Spring MVC的国际化是建立在Java国际化的基础上的,其一样是通过提供不同国家...
    99+
    2023-05-31
    springmvc
  • 怎么在Spring Boot与Thymeleaf中使用JPA实现一个分页效果
    怎么在Spring Boot与Thymeleaf中使用JPA实现一个分页效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1 创建项目,用pom.xml引入依赖这里将创建名为T...
    99+
    2023-06-06
  • spring boot怎么配置静态路径
    这篇文章主要介绍了spring boot怎么配置静态路径的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇spring boot怎么配置静态路径文章都会有所收获,下面我们一起来看看吧。一&nbs...
    99+
    2023-06-29
  • page.json页面怎么配置
    本篇内容介绍了“page.json页面怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!page.json每一个小程序页面也可以使用.j...
    99+
    2023-06-26
  • 怎么对Spring Boot配置文件进行多环境配置
    这期内容当中小编将会给大家带来有关怎么对Spring Boot配置文件进行多环境配置,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一. 多环境配置的好处:不同环境配置可以配置不同的参数~便于部署,提高效率...
    99+
    2023-05-31
    springboot spring boo bo
  • Nginx怎么配置404页面
    这篇文章主要讲解了“Nginx怎么配置404页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx怎么配置404页面”吧!第一种:Nginx自己的错误页面Nginx访问一个静态的htm...
    99+
    2023-06-27
  • 帝国cms404页面怎么设置
    帝国cms404页面的设置步骤为:1、登录到帝国CMS的后台管理界面;2、导航到"内容"或"站点管理"等相关菜单选项;3、找到和选择"404页面"或"错误页面"...
    99+
    2023-08-02
  • spring boot怎么获取配置文件的属性
    这篇文章主要介绍“spring boot怎么获取配置文件的属性”,在日常操作中,相信很多人在spring boot怎么获取配置文件的属性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”spring boot怎么...
    99+
    2023-06-05
  • Spring Boot怎么读取自定义配置文件
    这篇文章给大家分享的是有关Spring Boot怎么读取自定义配置文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。@Value首先,会想到使用@Value注解,该注解只能去解析yaml文件中的简单类型,并绑定到...
    99+
    2023-06-15
  • 怎么在Spring boot中对多线程进行配置
    这篇文章给大家介绍怎么在Spring boot中对多线程进行配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。配置线程配置类package test;import java.util.concurr...
    99+
    2023-05-30
    springboot 多线程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作