我如何按索引循环?
Foo.java
public Foo {
private List<String> tasks;
...
}
的index.html
<p>Tasks:
<span th:each="${index: #numbers.sequence(0, ${foo.tasks.length})}">
<span th:text="${foo.tasks[index]}"></span>
</span>
</p>
我得到了解析错误
org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as each: "${index: #numbers.sequence(0, ${student.tasks.length})}"
答案 0 :(得分:62)
Thymeleaf th:each
允许您声明迭代状态变量
<span th:each="task,iter : ${foo.tasks}">
然后在循环中,您可以参考iter.index
和iter.size
。
请参阅Tutorial: Using Thymeleaf - 6.2 Keeping iteration status。
答案 1 :(得分:2)
如果省略,Thymeleaf总是声明隐式迭代状态变量。
<span th:each="task : ${foo.tasks}">
<span th:text="${taskStat.index} + ': ' + ${task.name}"></span>
</span>
这里,状态变量名称为taskStat
,它是变量task
和后缀Stat
的集合。
然后在循环中,我们可以引用taskStat.index
,taskStat.size
,taskStat.count
,taskStat.even
和taskStat.odd
,taskStat.first
和{{ 1}}。