一、Thymeleaf 基本对象
模板引擎提供了一组内置的对象,这些内置的对象可以直接在模板中使用,这些对象由#
号开始引用,
我们比较常用的内置对象。
-
#request : 表示 HttpServletRequest
-
#session :表示 HttpSession 对象
-
session :同样表示 HttpSession 对象,使用起来有略微差别
request.setAttribute("requestData","request 中的数据");
session.setAttribute("loginname","zhangsan");
<p th:text="${#request.getAttribute('reqdata')}">request 作用域</p>
<p th:text="${#request.getServerName()}"></p>
<p th:text="${#request.getServerPort()}"></p>
<p th:text="${#request.getServletPath()}"></p>
<p th:text="${#session.getAttribute('loginname')}"></p>
<p th:text="${session.loginname}"></p>
二、Thymeleaf 内置工具类对象
模板引擎提供的一组功能性内置对象,可以在模板中直接使用这些对象提供的功能方法工作中常使用的数据类型,如集合,时间,数值,可以使用 Thymeleaf 的提供的功能性对象来处理它们内置功能对象前都需要加#号,内置对象一般都以 s 结尾。
官方手册:http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
- #dates :java.util.Date 对象的实用方法
<span th:text="${#dates.format(curDate, 'yyyy-MM-ddHH:mm:ss')}"></span>
- #calendars : 和 dates 类似, 但是 java.util.Calendar 对象;
- #numbers : 格式化数字对象的实用方法;
- #strings : 字符串对象的实用方法: contains, startsWith, prepending/appending 等;
- #objects : 对 objects 操作的实用方法;
- #bools : 对布尔值求值的实用方法;
- #arrays : 数组的实用方法;
- #lists : list 的实用方法,比如
<span th:text="${#lists.size(datas)}"></span>
- #sets :set 的实用方法;
- #maps : map 的实用方法;
- #aggregates : 对数组或集合创建聚合的实用方法
三、内容复用
自定义模板是复用的行为。可以把一些内容,多次重复使用。
1、定义模板
语法 :th:fragment="top"
,定义模板,自定义名称是 top。
<div th:fragment="top">
<p>hhh</p>
<p>哈嗨</p>
</div>
2、引用模板
语法 :~{ 页面名称 :: 模板名称}
或者 页面名称 :: 模板名称
比如 我在 head.html 界面应用上述的模板,共有三种方式 :include,insert,replace
<p th:insert="head::top"></p>
<p th:include="head::top"></p>