我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Thymeleaf模板片断技术怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Thymeleaf模板片断技术怎么使用

本篇内容主要讲解“Thymeleaf模板片断技术怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Thymeleaf模板片断技术怎么使用”吧!

系统中的很多页面有很多公共内容,例如菜单、页脚等,这些公共内容可以提取放在一个称为“模板片断”的公共页面里面,其它页面可以引用这个 “模板片断”内容。

一、模板片断的定义

可以是html标签,也可以使用th:fragment属性定义片断。

二、引用片断

1、使用th:insert属性插入片断,除此之外,还可以使用th:replace和th:include插入。
语法:
(1) th:insert="~{模板名称}"
插入模板的整个内容

(2) th:insert="~{模板名称::选择器}"
插入模板的指定内容,选择器可以对应th:fragment定义的名称,也可以用类似JQuery选择器的语法选择部分片断。
片断选择器语法:
a) /name,选择子节点中节点名称为name的节点
b) //name,选择全部子节点中节点名称为name的节点
c) name[@attr='value'] 选择名称为name并且属性值为value的节点,如有多个属性可用and连接
d) //name[@attr='value'][index] 选择名称为name并且属性值为value的节点,指定节点索引
片断选择器的简化语法:
a) 可以省略 @ 符号
b) 使用 # 符号代替 id 选择,如div#id等价于div[id='id']
c) 使用 . 符号代替 class 选择,如div.class等于于div[class='class']
d) 使用 % 代替片断引用,如片断节点使用了th:ref或th:fragment,则可使用div%ref来选取节点

(3) th:insert="~{::选择器}"
不指定模板名称,则选择器作用于当前页面

(4) th:insert="~{this::选择器}"
与"~{::选择器}"类似,不同之处是在本页面找不到片断时,会到模板引擎的process方法处理的模板中寻找片断。

2、th:insert、th:replace、th:include的区别
th:insert 当前标签里面插入模板中的标签
th:replace替换当前标签为模板中的标签
th:include前标签里面插入模板的标签内容

3、模板片断也支持传入变量
引用语法:~{footer.html::名称(参数)

4、片断块引用
可以使用th:block定义片断块,th:block是一个属性容器,可以在里面添加任何的th属性。
例如表格的循环体中一般在tr中用th:each,也可以用th:block改写。

5、删除模板
使用th:remove删除模板,属性值:
all:删除当前节点,包括子节点
body:删除当前节点的全部子节点
tag:删除当前节点,不包括子节点
all-but-first:除了当前节点下面的第一个子节点,其它全部删除
none:不进行任何操作

三、使用实例

开发环境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8

新建一个名称为demo的Spring Boot项目。

1、pom.xml
加入Thymeleaf依赖

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

2、class="lazy" data-src/main/java/com/example/demo/TestController.java

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {
    @RequestMapping("/")
    public String test(){
        return "test";
    }
}

3、class="lazy" data-src/main/resources/templates/footer.html

<span th:fragment="frag1">frag1</span>
<span th:fragment="frag2">frag2</span>

<div id="footer1">footer1</div>

<div>
    <div id="footer2">footer2</div>
</div>

<div>
    <span class="content">footer3</span>
    <span class="content">footer4</span>
</div>

<div th:fragment="welcome(userName)">
    <span th:text="|hello,| + ${userName}"></span>
</div>

4、class="lazy" data-src/main/resources/templates/test.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h5>th:insert引用片断</h5>
引用指定模板的整个内容
<div th:insert="~{footer.html}"></div>
引用指定模板的片断
<div th:insert="~{footer.html::frag1}"></div>
引用本页面的片断
<div th:insert="~{::frag3}"></div>
<div th:insert="~{this::frag3}"></div>
<div th:fragment="frag3">frag3</div>

<h5>th:replace、th:include与th:insert的区别</h5>
<div th:replace="~{footer.html::frag1}"></div>
<div th:include="~{footer.html::frag1}"></div>

<h5>片断选择器的部分用法</h5>
<div th:insert="~{footer.html::/div[@id='footer1']}"></div>
<div th:insert="~{footer.html:://div#footer2}"></div>
<div th:insert="~{footer.html::span[class='content']}"></div>
<div th:insert="~{footer.html:://span[class='content'][0]}"></div>
<div th:insert="~{footer.html:://span.content}"></div>
<div th:insert="~{footer.html::span%frag1}"></div>

<h5>含有变量的片断引用</h5>
<div th:insert="~{footer.html::welcome('小明')}"></div>

<h5>片断块引用</h5>
<table>
    <th:block th:each="number : ${#numbers.sequence(0,1)}">
        <tr>
            <td th:text="${number}"></td>
        </tr>
    </th:block>
</table>

<h5>删除模板</h5>
<table>
    <th:block th:each="number : ${#numbers.sequence(0,1)}">
        <tr th:remove="${number > 0} ? all : none">
            <td th:text="${number}"></td>
        </tr>
    </th:block>
</table>

</body>
</html>

IDEA运行后,浏览器访问:http://localhost:8080,查看网页源代码,结果如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h5>th:insert引用片断</h5>
引用指定模板的整个内容
<div><span>frag1</span>
<span>frag2</span>

<div id="footer1">footer1</div>

<div>
    <div id="footer2">footer2</div>
</div>

<div>
    <span class="content">footer3</span>
    <span class="content">footer4</span>
</div>

<div>
    <span>hello,null</span>
</div></div>
引用指定模板的片断
<div><span>frag1</span></div>
引用本页面的片断
<div><div>frag3</div></div>
<div><div>frag3</div></div>
<div>frag3</div>

<h5>th:replace、th:include与th:insert的区别</h5>
<span>frag1</span>
<div>frag1</div>

<h5>片断选择器的部分用法</h5>
<div><div id="footer1">footer1</div></div>
<div><div id="footer2">footer2</div></div>
<div><span class="content">footer3</span><span class="content">footer4</span></div>
<div><span class="content">footer3</span></div>
<div><span class="content">footer3</span><span class="content">footer4</span></div>
<div><span>frag1</span></div>

<h5>含有变量的片断引用</h5>
<div><div>
    <span>hello,小明</span>
</div></div>

<h5>片断块引用</h5>
<table>
    
        <tr>
            <td>0</td>
        </tr>
    
        <tr>
            <td>1</td>
        </tr>
    
</table>

<h5>删除模板</h5>
<table>
    
        <tr>
            <td>0</td>
        </tr>
    
        
    
</table>

</body>
</html>

到此,相信大家对“Thymeleaf模板片断技术怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Thymeleaf模板片断技术怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

spring Boot怎么与Thymeleaf模板引擎结合使用

这篇文章给大家介绍spring Boot怎么与Thymeleaf模板引擎结合使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Thymeleaf:Thymeleaf是一个java类库,他是一个xml/xhtml/htm
2023-05-31

GoJs图片绘图模板Picture怎么使用

本文小编为大家详细介绍“GoJs图片绘图模板Picture怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“GoJs图片绘图模板Picture怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。go.Pi
2023-07-06

html模板页怎么使用

html 模板页是预先制作的 html 文件,可简化网站开发。使用步骤包括:1. 查找并下载模板;2. 解压缩模板文件(如有必要);3. 编辑模板页内容;4. 调整 css 样式(可选);5. 保存并预览更改;6. 使用模板页。好处包括:节
html模板页怎么使用
2024-05-21

怎么在springboot中利用thymeleaf模板实现一个paginate分页功能

今天就跟大家聊聊有关怎么在springboot中利用thymeleaf模板实现一个paginate分页功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。pom.xml 加入