模板引擎提供了一组内置的对象,这些内置的对象可以直接在模板中使用,这些对象由#
号开始引用,
我们比较常用的内置对象。
#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 的提供的功能性对象来处理它们内置功能对象前都需要加#号,内置对象一般都以 s 结尾。
官方手册:http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
<span th:text="${#dates.format(curDate, 'yyyy-MM-ddHH:mm:ss')}"></span>
<span th:text="${#lists.size(datas)}"></span>
自定义模板是复用的行为。可以把一些内容,多次重复使用。
语法 :th:fragment="top"
,定义模板,自定义名称是 top。
<div th:fragment="top">
<p>hhh</p>
<p>哈嗨</p>
</div>
语法 :~{ 页面名称 :: 模板名称}
或者 页面名称 :: 模板名称
比如 我在 head.html 界面应用上述的模板,共有三种方式 :include,insert,replace
<p th:insert="head::top"></p>
<p th:include="head::top"></p>