属性优先级 局部变量 注释和块 th:* 在同一个标签中写入多个属性会发生什么?例如: <ul> <li th:each="item : ${items}" th:text="${item.description}">Item description here...</li> </ul> 我们希望该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 这个优先级机制意味着如果属性位置被反转,上面的迭代片段将给出完全相同的结果(虽然它的可读性稍差): <ul> <li th:text="${item.description}" th:each="item : ${items}">Item description here...</li> </ul> 局部变量 注释和块