SpringBoot(五):Thymeleaf模板引擎

/ SpringBoot / 1 条评论 / 296人围观

既然用了SpringBoot就该抛弃传统的jsp了,官方推荐最友好的引擎就是Thymeleaf了,我实际使用了一段时间,感觉非常好用,下面介绍一下基本的配置以及用法,更加高级的用法请参考官方文档,或者参考我 个人项目

引入jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

在SpringBoot中,默认的html页面地址为src/main/resources/templates,默认的静态资源地址为src/main/resources/static

Thymeleaf默认配置

#开启模板缓存(默认值:true)
spring.thymeleaf.cache=true 
#Check that the template exists before rendering it.
spring.thymeleaf.check-template=true 
#检查模板位置是否正确(默认值:true)
spring.thymeleaf.check-template-location=true
#Content-Type的值(默认值:text/html)
spring.thymeleaf.content-type=text/html
#开启MVC Thymeleaf视图解析(默认值:true)
spring.thymeleaf.enabled=true
#模板编码
spring.thymeleaf.encoding=UTF-8
#要被排除在解析之外的视图名称列表,用逗号分隔
spring.thymeleaf.excluded-view-names=
#要运用于模板之上的模板模式。另见StandardTemplate-ModeHandlers(默认值:HTML5)
spring.thymeleaf.mode=HTML5
#在构建URL时添加到视图名称前的前缀(默认值:classpath:/templates/)
spring.thymeleaf.prefix=classpath:/templates/
#在构建URL时添加到视图名称后的后缀(默认值:.html)
spring.thymeleaf.suffix=.html
#Thymeleaf模板解析器在解析器链中的顺序。默认情况下,它排第一位。顺序从1开始,只有在定义了额外的TemplateResolver Bean时才需要设置这个属性。
spring.thymeleaf.template-resolver-order=
#可解析的视图名称列表,用逗号分隔
spring.thymeleaf.view-names=

一般默认配置不需要改,仅需要在配置文件中加上下面这两行就可以了。

#将thymeleaf缓存关闭
spring.thymeleaf.cache=false
#去掉html的校验
spring.thymeleaf.mode=LEGACYHTML5

测试代码

/**
 * description
 *
 * @author 70KG
 * @date 2018/10/25
 */
@Controller
public class TestThymeleafController {

    @RequestMapping("/testThymeleaf")
    public String index(Model m) {
        List<SysLog> list = new ArrayList();
        list.add(new SysLog(1, "70KG", "添加", 10, "insert", "params", "127.0.0.1", new Date()));
        list.add(new SysLog(2, "70KG", "添加", 10, "insert", "params", "127.0.0.1", new Date()));
        list.add(new SysLog(3, "70KG", "添加", 10, "insert", "params", "127.0.0.1", new Date()));
        list.add(new SysLog(4, "70KG", "添加", 10, "insert", "params", "127.0.0.1", new Date()));
        m.addAttribute("syslogList", list);
        return "syslog";
    }

}
<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org">
<head>
    <title>account</title>
    <meta https-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" th:href="@{/css/style.min.css}" type="text/css">
</head>
<body>
<table>
    <tr>
        <th>id</th>
        <th>username</th>
        <th>operation</th>
        <th>time</th>
        <th>method</th>
        <th>params</th>
        <th>ip</th>
        <th>createTime</th>
    </tr>
    <tr th:each="list : ${syslogList}">
        <td th:text="${list.id}"></td>
        <td th:text="${list.username}"></td>
        <td th:text="${list.operation}"></td>
        <td th:text="${list.time}"></td>
        <td th:text="${list.method}"></td>
        <td th:text="${list.params}"></td>
        <td th:text="${list.ip}"></td>
        <td th:text="${list.createTime}"></td>
    </tr>
</table>
</body>
</html>

在地址栏输入:https://localhost:8080/testThymeleaf 展示页面。更加灵活的用法请参考官方文档或者 个人项目

  1. ddddddd

    回复