假设我想获得这样的结构:
<div>
<ul>
<!-- Item -->
<li class="item">
<span class="more no-select" data-target=".item1">+</span>
<span class="right"></span>
</li>
<!-- Children -->
<li class="item1 hidden nojs">
<span class="spacing"></span>
<a href="mylink">My link</a>
</li>
<li class="item1 hidden nojs">
<span class="spacing"></span>
<a href="mylink">My link</a>
</li>
<li class="item1 hidden nojs">
<span class="spacing"></span>
<a href="mylink">My link</a>
</li>
</ul>
</div>
基本上每个 item
都有 [0 ... n] 个 children
。
要使用 Thymeleaf 获得此结构,我首先定义主要项目如下:
<li th:each="item : ${items}">
<span class="more no-select" th:attr="data-target='.' + ${item.id}">+</span>
<span class="right"></span>
</li>
但是,由于 item
的范围有限,我该如何循环遍历它的 item.children
?
最佳答案
我认为您必须将 th:each
移动到更高的级别,这样您还可以在每个 li
元素之后添加子元素。 th:block
元素应该很方便,因为它本身不创建 HTML 元素,但可以携带任何 Thymeleaf 属性。
解决方案的概要如下:
<th:block th:each="item : ${items}">
<!-- Item -->
<li class="item">
item content ...
</li>
<!-- Children -->
<li th:each="child : ${item.children}" class="item1 hidden nojs">
child content ...
</li>
</th:block>
关于java - Spring - Thymeleaf 迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46896307/