导入实体类,dao层
导入静态资源:html、css、js放到static下
html页面放到templates中,这样才能得到模板引擎的解析
这里我有两个index.html页面
http://localhost:8080/
默认访问的是public中的
如何控制访问模板文件夹中的index.html?
需要在控制器中配置
也就是,不管我访问/ 还是/index.html
都是去模板引擎中找index.html
但是我们每次都在控制器中配置显然麻烦,
使用扩展springMVC
同样是当访问访问/ 还是/index.html
都是去模板引擎中找iogin.html
我们的登录页面
资源引用
公共的资源使用依赖
从webjars官网找到bootstrap的依赖
引入资源
这种写法的好处:
比如我们的访问名变了
会自动加上/crud
国际化
login页面国际化
1、编写国际化配置文件,抽取页面需要显示的国际化消息
新建国际化配置文件
2、SpringBoot自动配置好了管理国际化资源文件的组件
3、去页面获取国际化的值
注意#{}是取国际化信息的语法,
[[]] 双中括号用于单标签外的文本取值
此时会发现页面乱码
IDEA设置全局配置,修改properties文件编码
在默认配置修改的配置是所有项目都修改
这样,properties文件默认编码是UTF-8,运行时会把UTF-8转变成ASCII妈输出
顺便查看一下,当前项目的settings,是否对全局设置生效
效果:根据浏览器语言设置的信息切换了国际化;
实现点击切换中英文
原理:
国际化Locale(区域信息对象);LocaleResolver(获取区域信息对象);
上边的国际化实现就是这个LocaleResolver获取到了请求头中的语言信息,把第一位的语言作为配置进行国际化
比如en_US在第一位,就以英文国际化
我们自己写一个LocaleResolver区域信息解析器来获取国际化信息
在这里,我首先获取默认的区域信息,如果从请求中传了区域信息,就使用传过来的
并返回区域信息
点击切换,也就是请求中携带了区域信息
/**
* 区域信息解析器
* 可以在连接上携带区域信息
*/
public class MyLocaleResolver implements LocaleResolver{
@Override
public Locale resolveLocale(HttpServletRequest request) {
String l = request.getParameter("l");
Locale locale = Locale.getDefault();
if(!StringUtils.isEmpty(l)){
String[] split = l.split("_");
locale = new Locale(split[0], split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable Locale locale) {
}
}
接着在扩展springMVC中,将自定义的区域信息解析器,注册到spring容器中
//扩展springMVC功能
//@EnableWebMvc //完全接管springMVC
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter{
//配置区域信息解析器,并注册到容器
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}