根据 Thymeleaf 属性优先级
insert
和 replace
将在 each
运算符之前工作。这就是为什么在处理 cellObject
时尚未定义 replace
。要更改处理顺序,您需要分离属性并在 each
之前处理 replace
。为此,您可能需要使用 th:block
合成标签,您的代码可能看起来像...
<tr th:fragment="rowFragment(rowObject)">
<th:block th:each="cellObject : ${rowObject.getCellObjects()}">
<td th:replace="~{::cellFragment(${cellObject})}"></td>
</th:block>
</tr>
请注意,我没有运行此代码,它仅用于演示该想法。