十一、注释和块
11.1. 标准 HTML/XMLComments
标准的 HTML/XMLComments<!-- ... -->
可以在 Thymeleaf 模板中的任何位置使用。这些 Comments 中的所有内容都不会被 Thymeleaf 处理,并将逐字复制到结果中:
<!-- User info follows -->
<div th:text="${...}">
...
</div>
11.2. Thymeleaf 解析器级 Comments 块
解析器级 Comments 块是将在 Thymeleaf 解析时从模板中简单删除的代码。他们看起来像这样:
<!--/* This code will be removed at Thymeleaf parsing time! */-->
Thymeleaf 将删除<!--/*
和*/-->
之间的所有内容,因此,当模板静态打开时,这些 Comments 块也可用于显示代码,因为知道 Thymeleaf 处理模板时会将其删除:
<!--/*-->
<div>
you can see me only before Thymeleaf processes me!
</div>
<!--*/-->
对于具有很多<tr>
的表进行原型制作,这可能非常方便,例如:
<table>
<tr th:each="x : ${xs}">
...
</tr>
<!--/*-->
<tr>
...
</tr>
<tr>
...
</tr>
<!--*/-->
</table>
11.3. Thymeleaf 仅原型 Comments 块
Thymeleaf 允许定义特殊 Comments 块的定义,当模板以静态方式打开(即作为原型)时,标记为 Comments,但 Thymeleaf 在执行模板时将其视为普通标记。
<span>hello!</span>
<!--/*/
<div th:text="${...}">
...
</div>
/*/-->
<span>goodbye!</span>
Thymeleaf 的解析系统将仅删除<!--/*/
和/*/-->
标记,但不会删除其内容,因此不会对其进行 Comments。因此,在执行模板时,Thymeleaf 实际上会看到以下内容:
<span>hello!</span>
<div th:text="${...}">
...
</div>
<span>goodbye!</span>
与解析器级 Comments 块一样,此功能与方言无关。
11.4. 合成 th:block 标签
Thymeleaf 的标准方言中唯一的元素处理器(不是属性)是th:block
。
th:block
是一个纯属性容器,允许模板开发人员指定他们想要的任何属性。 Thymeleaf 将执行这些属性,然后简单地使该块(而不是其内容)消失。
因此,例如在创建每个表需要多个<tr>
的迭代表时,它可能会很有用:
<table>
<th:block th:each="user : ${users}">
<tr>
<td th:text="${user.login}">...</td>
<td th:text="${user.name}">...</td>
</tr>
<tr>
<td colspan="2" th:text="${user.address}">...</td>
</tr>
</th:block>
</table>
与仅原型 Comments 块结合使用时特别有用:
<table>
<!--/*/ <th:block th:each="user : ${users}"> /*/-->
<tr>
<td th:text="${user.login}">...</td>
<td th:text="${user.name}">...</td>
</tr>
<tr>
<td colspan="2" th:text="${user.address}">...</td>
</tr>
<!--/*/ </th:block> /*/-->
</table>
请注意,此解决方案如何使模板成为有效的 HTML(无需在<table>
内添加禁止的<div>
块),并且当在浏览器中作为原型静态打开时仍然可以正常使用!
最新评论
https://pan.baidu.com/s/1q3bnTncIACKoTZFxvx7BQw?pwd=ii7n
RabbitMQ精讲,项目驱动落地,分布式事务拔高 有吗?
Spring Cloud Alibaba 微服务架构实战 https://pan.baidu.com/s/1jF5voFRoeF0lYAzAPBWSbw?pwd=chqk
命令: nload
真是个良心站点哇,大公无私,爱了爱了
还可以直接搞一张映射表,存 uid | time | source_index, 第一次直接查对应的 time 选出前100, 第二次直接用 CompleteFuture 去分别用 source_in
干得漂亮,多个朋友堵条路
2021.2.2版本的不适用吧