Spring Boot-国际化

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
(1)导入thymeleaf依赖:

org.springframework.boot

spring-boot-starter-thymeleaf

(2)在IDEA中统一设置properties的编码问题

2.2  搭建


1. 编写国际化配置文件

(1)在resources资源文件下新建一个i18n目录,存放国际化配置文件

(2)建立一下文件:

login.properties(默认文字)

login_zh_CN.properties(中文文字)

login_en_US.properties(英文文字)

建立完之后,文件夹自动发生了变化,因为IDEA已经自动识别到我们要做国际化操作了。

Tip:

如果想要继续添加,可以看到这里有提示,直接点击。

这种方式添加就会更方便一点。

2. 编写配置

可以发现此时IDEA左下方有出现这个提示:

点击 + 号就可以直接添加属性了

此时可以看到边上有三个文件框,可以输入各种语言对应的输出语言

我们进行添加多个例子,方便待会做个案例

3. SpringBoot中的一个类MessageSourceAutoConfiguration已经自动配置好了管理我们国际化资源文件的组件,我们只需要前往application.properties中配置这个messages的路径。

application.properties:

spring.messages.basename=i18n.login

4.编写自定义的Locale区域解析器

LocaleResolver :默认解析器,用于设置当前会话的默认的国际化语言。

如果我们现在想点击链接让我们的国际化资源生效,就需要让我们自己的Locale生效

我们去自己写一个自己的LocaleResolver,可以在链接上携带区域信息!

package com.yixin.demo.config;

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 {

//解析请求

@Override

public Locale resolveLocale(HttpServletRequest request) {

String language = request.getParameter(“l”);

Locale locale = Locale.getDefault(); // 如果没有获取到就使用系统默认的

//如果请求链接不为空

if (!StringUtils.isEmpty(language)){

//分割请求参数

String[] split = language.split(“_”);

//国家,地区

locale = new Locale(split[0],split[1]);

}

return locale;

}

@Override

public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

}

}

5.为了让我们的区域化信息能够生效,我们需要再配置一下这个组件,在我们自己的MvcConofig下添加bean;

package com.yixin.demo.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.LocaleResolver;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration

public class MyMvcConfig implements WebMvcConfigurer {

@Override

public void addViewControllers(ViewControllerRegistry registry) {

registry.addViewController(“/”).setViewName(“index”);

registry.addViewController(“/index.html”).setViewName(“index”);

}

@Bean

public LocaleResolver localeResolver(){

return new MyLocaleResolver();

}

}

6.编写前端

将index.html放在resources下的thymeleaf目录中

index.html:

Signin Template for Bootstrap

如何快速更新自己的技术积累?

  • 在现有的项目里,深挖技术,比如用到netty可以把相关底层代码和要点都看起来。
  • 如果不知道目前的努力方向,就看自己的领导或公司里技术强的人在学什么。
  • 知道努力方向后不知道该怎么学,就到处去找相关资料然后练习。
  • 学习以后不知道有没有学成,则可以通过面试去检验。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
试去检验。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目

[外链图片转存中…(img-CU0IaRMZ-1714656948202)]

[外链图片转存中…(img-dZp85ieT-1714656948202)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值