17.3 th:ref属性
th:ref
只是一个标记属性,它从处理的角度来说什么都不做,处理完成后会直接消失。它的作用在于标记参考,比如,它可以像一个标签名或是片段名(th:fragment
)一样被markup选择器选中。
所以如果我们有这样的一个选择器:
<attr sel="whatever" .../>
它会匹配:
- 一切
<whatever>
标签 - 一切含有
th:fragment="whatever"
属性的标签 - 一切含有
th:ref="whatever"
属性的标签
相对于纯HTML的id
属性,th:ref
的优点是什么呢?就是我们不想再标签上添加额外的id
和class
属性作为逻辑锚点,从而影响输出结果。
那么同样的,th:ref
的缺点是什么?显然我们将一些Thymeleaf逻辑(“logic”)添加到了模板中。
注意th:ref
不仅适用于逻辑解耦模板,它在其它场景中也适用,比如片段表达式(~{...}
)。