《一线大厂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:
如何快速更新自己的技术积累?
- 在现有的项目里,深挖技术,比如用到netty可以把相关底层代码和要点都看起来。
- 如果不知道目前的努力方向,就看自己的领导或公司里技术强的人在学什么。
- 知道努力方向后不知道该怎么学,就到处去找相关资料然后练习。
- 学习以后不知道有没有学成,则可以通过面试去检验。
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
试去检验。
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目
[外链图片转存中…(img-CU0IaRMZ-1714656948202)]
[外链图片转存中…(img-dZp85ieT-1714656948202)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!