一、创建springboot项目
选择web模块
模板引擎选择 Thymeleaf,也可以自己在pom文件中自己引用
二、添加Jquery,和Bootstrap
把依赖拷贝下来放在pom文件中,当然可以选择自己要的版本
可以设置thymeleaf的版本
thymeleaf-layout是布局的功能
thymeleaf-layout只有2.0以上的版本才支持thymeleaf 3.0
三、Java类,及修改默认配置,注册组件
新建三个包
1. component包新建MyLocaleResolver类
用来重写默认国际化设置,可以通过点击中文,Englist来转换,而且不会受浏览器语言的限制
public class MyLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest httpServletRequest) {
//获取我们自己传入的参数
String parameter = httpServletRequest.getParameter("l");
//如果没有传入,就返回默认的
Locale locale = Locale.getDefault();
if(!StringUtils.isEmpty(parameter)){
String[] split = parameter.split("_");
locale= new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
2. config包新建MyMVCConfig
来修改一下mvc的一些基本配置,修改登录页的位置
@Configuration
public class MyMVCConfig extends WebMvcConfigurerAdapter {
@Bean//将组件注册到容器中
public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){
WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter(){
@Override
public void addViewControllers(ViewControllerRegistry registry){
//浏览器发送 /,/index.html最后都会到login
registry.addViewController( "/").setViewName("login");
registry.addViewController( "/index.html").setViewName("login");
}
};
return adapter;
}
//注册我们自己写的国际化设置
@Bean//必须的
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
3. 在controller包中新建HelloController
写我们自己的控制器代码
注释的方法 可以忽略
//此处一定是Controller,如果是RestController,或者加上@ResponseBody,只能返回文本
@Controller
public class HelloController {
//也可以在这里写一个方法配置login页,不用写2中的webMvcConfigurerAdapter
// @RequestMapping({"/","login.html"})
// public String login(){
// return "Login";
// }
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World";
}
// @RequestMapping("/success")
// public String success(Model model){
// //classpath:/templates/success.html
// //map.put("hello","快出来");
// model.addAttribute("hello","粗来");
// return "success";
// }
@RequestMapping("/success")
public String success(Map map){
map.put("hello","原来是@RestController的问题");
return "success";
}
}
四、写resources
随便选一个进去,选择Resource Bundle,然后新建一个自己需要的,后面就会有默认,中文,英文的,自己添加OK
全部代码如下:
里面该有的解释都有
thymeleaf都是th:+ 属性来设置
//引入命名空间 可以 对thymeleaf 提示
//这个我没有弄
Signin Template for Bootstrap
//这个在我们 引用的bootstrap外部库里面,从webjar开始
//我们自己的登陆css
五、在application.properties文件中加入我们写的i18n
spring.messages.basename=i18n.login
六、测试
默认是中文的,即使把浏览器设置为英文,还是显示中文,
如果要跟随浏览器语言,就把自己写的MyLocaleResolver去掉,就可以根据浏览器语言来切换国际化
点击英文
注意我们浏览器地址的变化,还有那是个L
七、乱码问题
单个项目设置,setting->后面都一样
全局设置,other setting-> File Encodings -> Properties Files ->选择UTF-8把后面转换的那个也勾上