https://www.yiibai.com/thymeleaf 具体教程
目前只粘贴一些常见的用法
如何向使用@{...}
表达式创建的URL添加参数?
1.一个参数 输出结果
2.多个参数 输出结果
3.还可以使用正常参数的路径变量的形式包含参数,但在URL的路径中指定一个占位符: 输出结果
th:attr 为元素属性赋值 一般不适用 都是用 th:value th:action th:text th:src th:href
1.一个属性 输出结果
2.多个属性 输出结果
th:attrappend
和th:attrprepend
属性 标准方言中还有两个特定的附加属性:th:classappend
和th:styleappend
属性 类似上面的方言 th:attr
它们将评估结果附加(后缀)或前置(前缀)到现有属性值。
如果您在cssStyle
变量设置为的情况下处理此模板"warning"
,您将获得:
使用th:each 迭代实现表格数据
Onions 2.41 yes
状态变量在th:each
属性中定义,包含以下数据:
- 当前迭代索引,从0开始。这是
index
属性。 - 当前迭代索引,从1开始。这是
count
属性。 - 迭代变量中元素的总量。这是
size
酒店。 - 每次迭代的iter变量。这是
current
酒店。 - 当前迭代是偶数还是奇数。这些是
even/odd
布尔属性。 - 当前迭代是否是第一个迭代。这是
first
布尔属性。 - 当前迭代是否是最后一次。这是
last
布尔属性。
使用th:if th:unless th:switch
,th:case
条件语句
th:if标记在模板中迭代显示产品列表,如果产品的价格大于100,则会显示:“特殊提供”
1 Red chair ¥350 2018-02-20 特殊提供 例子:th:if ="${not #lists.isEmpty(prod.comments)}
如果有生成页面为特殊提供
th:case
1 Red chair ¥350 2018-02-20 闪购 拼团 促销 其它 特殊提供
定义和引用片段 :引用页面 如后台模板的头部,底部,菜单栏
因此我们创建一个/WEB-INF/templates/footer.html
包含以下代码的文件:
<div th:fragment="copy">
© 2011 The Good Thymes Virtual Grocery</div>
接着我们在主页 index.html中 使用th:insert
或th:replace
属性引入该copy片段
<div th:insert="~{footer :: copy}"></div>
th:insert
需要一个片段表达式 ~{页面::片段名称}
重点:片段表达式的三种格式区别
将导致:
© 2011 The Good Thymes Virtual Grocery
1,th:inssert:保留当前主标签,保留th:fragment主标签;
2,th:replace:舍弃当前主标签,保留th:fragment主标签;
3,th:include:保留当前主标签,舍弃th:fragment主标签。
JavaScript内联
JavaScript内联允许<script>
在HTML
模板模式下处理的模板中更好地集成JavaScript 块。
与文本内联一样,这实际上相当于处理脚本内容,就好像它们是JAVASCRIPT
模板模式中的模板一样,因此文本模板模式的所有功能(见下一章)都将在眼前。但是,在本节中,我们将重点介绍如何使用它将Thymeleaf表达式的输出添加到JavaScript块中。
必须使用th:inline="javascript"
以下方式明确启用此模式:
首先,JavaScript内联不仅会输出所需的文本,而且还会用引号和JavaScript来包含它 - 转义其内容,以便将表达式结果输出为格式良好的JavaScript文字。
其次,发生这种情况是因为我们将${session.user.name}
表达式输出为转义,即使用双括号表达式:[[${session.user.name}]]
。如果相反,我们使用非转义,如:
thymeleaf 对java8 localDate LocalDateTime的支持
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
<p th:text=”${#dates.format(standardDate, ‘dd-MM-yyyy HH:mm’)}”></p> 这还是之前对 thymeleaf对java.util.date 时间的支持
<p th:text=”${#temporals.format(localDateTime, ‘dd-MM-yyyy HH:mm’)}”></p>
<p th:text=”${#temporals.format(localDate, ‘MM-yyyy’)}”></p>