如何向使用@{...}表达式创建的URL添加参数?
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 迭代实现表格数据
Onions2.41yes状态变量在th:each属性中定义,包含以下数据:
当前迭代索引,从0开始。这是index属性。
当前迭代索引,从1开始。这是count属性。
迭代变量中元素的总量。这是size酒店。
每次迭代的iter变量。这是current酒店。
当前迭代是偶数还是奇数。这些是even/odd布尔属性。
当前迭代是否是第一个迭代。这是first布尔属性。
当前迭代是否是最后一次。这是last布尔属性。
使用th:if th:unless th:switch,th:case条件语句
th:if标记在模板中迭代显示产品列表,如果产品的价格大于100,则会显示:“特殊提供”
1Red chair¥3502018-02-20 特殊提供 例子:th:if ="${not #lists.isEmpty(prod.comments)}如果有生成页面为
特殊提供th:case
1Red chair¥3502018-02-20闪购
拼团
促销
其它
特殊提供
定义和引用片段 :引用页面 如后台模板的头部,底部,菜单栏
因此我们创建一个/WEB-INF/templates/footer.html包含以下代码的文件:
接着我们在主页 index.html中 使用th:insert或th:replace属性引入该copy片段
重点:片段表达式的三种格式区别
© 2011 The Good Thymes Virtual Grocery
将导致:
© 2011 The Good Thymes Virtual Grocery
© 2011 The Good Thymes Virtual Grocery
© 2011 The Good Thymes Virtual Grocery
1,th:inssert:保留当前主标签,保留th:fragment主标签;
2,th:replace:舍弃当前主标签,保留th:fragment主标签;
3,th:include:保留当前主标签,舍弃th:fragment主标签。
JavaScript内联
JavaScript内联允许
与文本内联一样,这实际上相当于处理脚本内容,就好像它们是JAVASCRIPT模板模式中的模板一样,因此文本模板模式的所有功能(见下一章)都将在眼前。但是,在本节中,我们将重点介绍如何使用它将Thymeleaf表达式的输出添加到JavaScript块中。
必须使用th:inline="javascript"以下方式明确启用此模式:
首先,JavaScript内联不仅会输出所需的文本,而且还会用引号和JavaScript来包含它 - 转义其内容,以便将表达式结果输出为格式良好的JavaScript文字。
其次,发生这种情况是因为我们将${session.user.name}表达式输出为转义,即使用双括号表达式:[[${session.user.name}]]。如果相反,我们使用非转义,如:
...
var username = [(${session.user.name})];
...
thymeleaf 对java8 localDate LocalDateTime的支持
org.thymeleaf.extras
thymeleaf-extras-java8time
3.0.0.RELEASE