th:insert、th:replace、th:include抽取和引用页面公共片段、传参等
一、抽取公共片段
- th:fragment 给片段命名
将公共片段抽取出来,并在顶级标签内使用th:fragment给该片段命名。
例如:将公共片段抽取出来放到comment/bar.html中:
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
这样我们就抽取了一个名叫topbar的公共片段。
二、引入公共片段
1.三种引入片段的方式:
- th:insert :将公共片段插入到声明引入的标签中
- th:replace:将公共片段替换掉声明引入的标签
- th:include:将公共片段中的内容包含进声明引入的标签内。
这三中引入的效果如下:
公共片段:
<footer th:fragment="copy">
© 2011 The Good Thymes Virtual Grocery
</footer>
th:insert :
<div th:insert="footer :: copy"></div> 效果:
<div>
<footer>
© 2011 The Good Thymes Virtual Grocery
</footer>
</div>
th:replace:
<div th:replace="footer :: copy"></div>
效果:
<footer>
© 2011 The Good Thymes Virtual Grocery
</footer>
th:include:
<div th:include="footer :: copy"></div>
效果:
<div>
© 2011 The Good Thymes Virtual Grocery
</div>
2.引入片段的表达式
在上边例子中我们可能有疑问 footer :: copy 这是什么意思?
其实这是一种引入片段的表达式之一,下面我们讲两种引入片段的表达式。
(1) 通过片段名引入片段的表达式: ~{模板名::片段名}
如我们需要引入上边第一部分演示的片段,我们需要这样写
<div th:replace="~{commons/bar::topbar}"></div>
注意 ~{}可以省略,开发中常常不会写~{}的方式来引入,而是通过下边这种,更加简洁。但是如果是行内写法,则必须加上~{},例如 [[~{}]] 或 [(~{ })]
<div th:replace="commons/bar::topbar"></div>
(2)通过选择器引入片段的表达式:~{模板名::选择器}
例如引入id为user的片段:
<div th:replace="commons/bar::#user"></div>
#号为id选择器
三、引用片段并传参
1.传递参数
只需要在表达式后边跟个小括号即可传递参数,小括号内通过键值对的方式设置值(key=value)
<div th:replace="commons/bar::topbar(username='zhangsan')"></div>
2.获取参数
在目标页面(引用片段表达式中模板名对应的页面)通过变量表达式${} 获取值即可。
<h4 th:text="${username}"></h4>
th:insert、th:replace、th:include抽取和引用页面公共片段、传参等的更多相关文章
- 关于thymeleaf th:replace th:include th:insert 的区别
关于thymeleaf th:replace th:include th:insert 的区别 th:insert :保留自己的主标签,保留th:fragment的主标签. th:re ...
- MYSQL开发性能研究——INSERT,REPLACE,INSERT-UPDATE性能比较
一.为什么要有这个实验 我们的系统是批处理系统,类似于管道的架构.而各个数据表就是管道的两端,而我们的程序就类似于管道本身.我们所需要做的事情无非就是从A表抽取数据,经过一定过滤.汇总等操作放置到B表 ...
- MyBatis_tp50_动态sql_sql标签_抽取可重用的sql片段_使用include标签进行引用
笔记要点出错分析与总结 include内部使用自定的属性,之能使用$ {}来取值 ,#{}不能用 工程组织数据库组织0.重新修改Bean类1.定义接口 public interface Employe ...
- sqlite "insert or replace" 和 "insert or ignore" 用法
insert or replace:如果不存在就插入,存在就更新insert or ignore:如果不存在就插入,存在就忽略只对UNIQUE约束的字段起作用.举例:建表:CREATE TABLE T ...
- Mysql INSERT、REPLACE、UPDATE的区别
用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSE ...
- Sqlite执行insert or ignore 或insert or replace语句。
Sqlite执行insert or ignore 或insert or replace语句. ,); ,); 上面的第一条语句是每次执行时,如果不存在,则添加,如果存在,则更新. 上面的第二条语句是每 ...
- 转载:mysql 操作总结 INSERT和REPLACE
转自:http://www.jb51.net/article/19411.htm 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做 ...
- mybatis动态sql中的sql标签——抽取可重用的sql片段
1.用<sql>标签抽取可重用的sql片段 <!-- 抽取可重用的SQL片段,方便后面引用 1.sql抽取,经常将要查询的列名,或者插入用的列名,之后方便引用 ...
- C++ map.insert 传参类型不同,构造/析构次数不同
1. 传参方式 使用 insert 为 map 插值时,insert 的传参包含以下几种可能: make_pair 生成对象 pair(key_type, value_type) 生成对象 pair( ...
随机推荐
- POJ1018贪心(多路归并的想法)
题意: 有n个服务器,每个服务器都要安装网线(必须也只能安装一个),然后每个服务器都有mi种选择网线的方式,每种方式两个参数,一个是速度b,另一个是价钱p,然后让你找到一个最大的比值 min ...
- XCTF-shrine
shrine 直接看题 进来给了个python代码 import flask import os app = flask.Flask(__name__) app.config['FLAG'] = os ...
- 数据人必读!玩转数据可视化用这个就够了——高德LOCA API 2.0升级来袭!
引言 "一图胜千言",大数据时代来临,数据与人们生活密切相关.复杂难懂且体量庞大的数据给人的感觉总是冷冰冰的,让人难以获取到重点信息,也找不出规律和特征,数据价值发挥不出来.空间数 ...
- matlab添加当前路径下的所有子目录
% 添加当前路径下的所有子目录addpath(genpath(pwd));
- Linux性能调优命令之free
功能说明 free 命令显示系统使用和空闲的内存情况,包括物理内存.交互区内存(swap)和内核缓冲区内存.共享内存将被忽略 语法 free [参数] 参数 -b : 以Byte为单位显示内存使用情况 ...
- str.isdigit()可以判断变量是否为数字
字符串.isdigit()可以判断变量是否为数字 是则输出True 不是则输出False 好像只能字符串
- 最全的cURL命令使用
cURL是什么 curl是Linux命令行工具,可以使用任何可支持的协议(如HTTP.FTP.IMAP.POP3.SCP.SFTP.SMTP.TFTP.TELNET.LDAP或FILE)在服务器之间传 ...
- css背景|列表样式
背景样式 背景区包含内容.padding 和 boder 不包含外边距 background-color 设置元素的背景颜色 background-image 把图像设置为背景,包含内边距和边框,不包 ...
- 如何讓RHEL7/CentOS7開機過程顯示更多資訊
rhgb選項rhgb用於圖形啟動(graphical boot-up), quiet 而quiet選項可以消除大部分啟動消息. 如何讓RHEL7/CentOS7開機過程顯示更多資訊 Arthur Ch ...
- Linux_交换分区SWAP
一.交换分区SWAP 1️⃣:交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 2️⃣:交换分区一般指定虚拟内存的大小 ...