目录
一、首页配置
1、所有页面的静态资源都需要用thymeleaf接管
2、url使用@{}格式
二、国际化
2.1 配置文件编写
1、在resources资源文件下新建一个i18n目录,存放国际化配置文件
2、建立一个login.properties文件,再建一个login_zh_CN.properties:此时IDEA自动识别我们要做国际化操作,文件夹会变
3、在这基础上,再建一个文件
4、开始编写配置,依次添加页面需要国际化的内容即可
2.2 使配置文件生效
配置messages的路径
2.3 配置页面国际化值
thymeleaf对于message的取值操作是:#{}
2.4 实现根据按钮自动切换中英文
如果想点击链接让我们的国际化资源生效,就需要让我们自己的Locale生效!
自己去写一个LocaleResolver,在链接上携带语言和地区信息(如zh_CN)
注意:thymeleaf携带参数,不使用问号,而是用括号
写一个处理的组件:MyLocaleResolver(实现LocaleResolver,则表示它是一个LocaleResolver)
package com.liang.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 request, HttpServletResponse response, Locale locale) {
}
}
为了能够生效,需要配置这个组件!
在MyMvcConfig下添加bean
三、登录+拦截器
1、前端页面
2、编写Controller
3、addViewController,更接近实际业务操作
4、实现拦截器
实现了HandlerInterceptor,它就是一个拦截器
重写preHandle方法,在方法中编写拦截的逻辑
5、使自定义的拦截器生效
注意:这里路径的/,代表的是resources资源文件下的子文件
也就是说"/index.html"就是resources/template/index.html