Thymeleaf 模板引擎和SpringBoot使用
一:SpringBoot项目中resources资源层次结构
1:resources下面的static目录下
Spring Boot 默认就配置了 /static/** 映射,所以无需任何配置就能访问。
静态页面放在static下,比如说一些图片,css样式,js,error(报错页面)。
<1>:static目录下错误处理
错误处理页面。
<2>:HTTP状态码大致分为5类:
- 1xx : 消息,这一类型的状态码,代表请求已被接受,需要继续处理。但是一般服务器禁止向客户端发送此类状态码;
- 2xx :成功,这一类型的状态码,代表请求已成功被服务器接收、理解、并接受;
- 3xx :重定向,这类状态码代表需要客户端采取进一步的操作才能完成求;
- 4xx :请求错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理;
- 5xx :服务器错误,这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
<3>常见的http状态码
- 200 : 成功,表示访问成功,正常状态。
- 401 : 表示协议格式出错,可能是此IP地址被禁止访问该资源,与403类似。
- 403 : 表示没有权限,服务器拒绝访问请求。
- 404 : 这是最常见的错误,表示找不到系统资源,但是只是暂时性地。
- 500 :表示服务器程序错误,一个通用的错误信息。
2:resources下面的templates目录
动态页面放在Templates下, 只能通过controller才能访问到该目录!(和原来的WEB-INF差不多), 里面放Thymeleaf的一些页面。
<1>:模板文件的使用
层次结构
原理
3:classpath路径 解释
classpath:mybatis/mapper.xml
classpath:/mybatis/mapper/*.xml*用maven构建 项目时,resources 目录就是默认的classpath
看起来只是一个/的区别, 但是不加/ 就是resources目录
加上**/** 就是整个模块的根目录
二:Thymeleaf 模板引擎的使用
1:Thymeleaf 模板引擎优点
- Thymeleaf是面向Web和独立环境的服务器Java模板引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文本数据。
- Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。
- Thymeleaf的可扩展性也非常棒。
2:搭建基于SpringBoot的Thymeleaf环境
-
第一步:在springboot的pom.xml中加入thymeleaf的依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependecy>
-
第二步: 新建模板文件
模板文件默认路径是放在resources/templates,以后新建的thymeleaf文件就放在当前目录下即可。
3:前端页面使用Thymeleaf模板页面和静态页面对比
使用模板方法之前必须引入th命名空间
<html xmlns:th="http://www.thymeleaf.org">
- Thymeleaf模板:先到controller的方法,在方法里查出数据,然后将查出的数据放到model里面,最后返回页面
- 静态页面:先到页面,页面到页面可以带有参数,然后在第二张页面用ajax进行请求controller的方法,获取数据,将数据返回到页面,进行渲染(常用这种方法)
4:模板方法URL链接的使用
th:href
是一个修饰符属性:一旦处理完毕,它将计算要使用的链接URL并将该值设置为该标记的href
属性<a>
。
<a href="details.html" th:href="@{/order/details(orderId=${o.id})}">view</a>
<a href="details.html" th:href="@{/order/{orderId}/details(orderId=${o.id})}">view</a>
5:模板方法使用Iteration迭代输出
-
第一步:controller层传入一个List对象
//一行代码构建多个对个对象 List<User> users = Arrays.asList(new User(1,"ws",new Date(),"男","兰州"), new User(2,"ws",new Date(),"男","兰州"), new User(3,"ws",new Date(),"男","兰州")); model.addAttribute("users",users);
-
第二步:前端模板页面接收List对象,并通过th:each进行迭代
<table border="1">
<tr>
<td>用户名</td>
<td>地址</td>
<td>性别</td>
</tr>
<tr th:each="user: ${users}">
<td th:text="${user.username}"></td>
<td th:text="${user.address}"></td>
<td th:text="${user.sex}"></td>
</tr>
</table>
- 第三步:结果
-
三:SpringBoot添加控制台日志
1:引入log日志依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
2:在yml中配置日志
logging:
level:
#配置路径
com.yjr.rj1902_g4_demo: debug
org.springframework.web: debug
# security
org.springframework.security: error
# mybatis
org.mybatis: debug