10 属性优先级
Last updated
Last updated
当你在同一个标签里,写上多个th:*
属性时,会发生什么🤔呢? 比如:
我们会期待th:each
属性在th:text
之前执行。这样,我们就能得到想要的结果。但是,实际上HTML/XML标准并没有任何关于标签里属性执行顺序的规定。为了确保在这样的情况下按预期方式工作,我们需要建立一种属性的优先级机制。
所以,所有Thymeleaf的属性定义了数字上的优先级。这样就解决了标签里属性执行顺序的问题。顺序如下:
这种优先级机制意味着:如果颠倒属性的位置(尽管可读性会稍微变差),上面的片段遍历也会得到完全相同的结果:
顺序
特性
属性
1
包含片段
th:insert th:replace
2
遍历片段
th:each
3
条件求值
th:if th:unless th:switch th:case
4
定义本地变量
th:object th:with
5
修改通用属性
th:attr th:attrprepend th:attrappend
6
修改特定属性
th:value th:href th:src ······
7
文本(修改标签主体)
th:text th:utext
8
指定片段
th:fragment
9
移除片段
th:remove