Thymeleaf模板引擎详细介绍

一、模板引擎工作原理

在这里插入图片描述

二、SpringBoot推荐的Thymeleaf模板引擎;

语法更简单,功能更强大;

2.1 引入 thymeleaf

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

2.2 Thymeleaf使用&语法

通过源码可见,只要把HTML页面放到classpath:/templates/ ,thymeleaf 就可以自动渲染了。
在这里插入图片描述

2.3 Controller 创建

@Controller
@RequestMapping("/demo")
public class DemoController {

    /**
     * 测试页面跳转
     * @param map
     * @return
     */
    @RequestMapping("/hello")
    public String moder(Map<String,Object> map) {
        map.put("name","xxxx");
        return "hello";
    }
}

2.4 在resource/templates 下创建 hello.html

导入thymeleaf名称空间: xmlns:th=“http://www.thymeleaf.org”

<!DOCTYPE html>
<html lang="en"
    xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>测试</title>
</head>
<body>
    <p th:text="'hello' + ${name}"></p>
</body>
</html>

2.5 结果

在这里插入图片描述

三、语法规则

一、th:text :设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会。优先级不高:order=7
二、th:value:设置当前元素的value值,类似修改指定属性的还有th:src,th:href。优先级不高:order=6
三、th:each:遍历循环元素,和th:text或th:value一起使用。注意该属性修饰的标签位置,详细往后看。优先级很高:order=2
四、th:if:条件判断,类似的还有th:unless,th:switch,th:case。优先级较高:order=3
五、th:insert:代码块引入,类似的还有th:replace,th:include,三者的区别较大,若使用不恰当会破坏html结构,常用于公共代码块提取的场景。优先级最高:order=1
六、th:fragment:定义代码块,方便被th:insert引用。优先级最低:order=8
七、th:object:声明变量,一般和*{}一起配合使用,达到偷懒的效果。优先级一般:order=4
八、th:attr:修改任意属性,实际开发中用的较少,因为有丰富的其他th属性帮忙,类似的还有th:attrappend,th:attrprepend。优先级一般:order=5


版权声明:本文为weixin_42865375原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。