spring boot默认的支持thymeleaf渲染
- 填充内容
th:href=""
包括html标签的一系列属性都可以替换
- 自定义的属性替换
需要使用到th:attr=""这个属性,比如有以下定义的属性:
<a ids=""></a>
那么可以利用该属性替换掉:
<a ids="" th:attr="ids='5"></a>
如果有多个属性,其中用分号隔开
- 迭代
迭代一般用到以下属性:
<th:block th:each="BlogMessage:${recentBlogList}">
block块里面是需要迭代的代码,迭代有几个状态属性,名字默认是迭代的节点名称加上Stat
例如${BlogMessageStat.size}表示该迭代有多少个节点
<th:block th:each="i:${#numbers.sequence(0,pageNum)}">
该属性代表着需要迭代只知道要迭代多少次但是没有内容情况下,利用该函数,可实现pageNum次迭代
- 复杂的替换
例如:
onclick='return addComment.moveForm( "comment-1", "1", "respond", "2518" )'
替换后:
th:onclick="'return addComment.moveForm("comment-'+${ConmentMessage.id}+'","'+${ConmentMessage.id}+'","respond","'+${postId}+'")'"
- 模板以及递归
定义模板:
<th:block th:fragment="conmentList(conmentLists,postId)">
......
//递归的调用子节点
<ul class="children">
<th:block th:unless="${#lists.isEmpty(ConmentMessage.child)}">
//调用,替换
<div th:replace="/front/conmentfragment::conmentList(${ConmentMessage.child},${postId})"></div>
</th:block>
<!-- .children -->
</ul>
<!-- #comment-## -->
</li>
</th:block>
</th:block>
模板定义中可以携带参数,用来进行模板的递归或者参数的调用。unless属性代表着除了该属性内满足以外的其他情况都可以进行。