Comment puis-je boucle par index?
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>
J'ai eu une erreur d'analyse
org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as each: "${index: #numbers.sequence(0, ${student.tasks.length})}"
Thymeleaf th:each
vous permet de déclarer une variable d'état d'itération
<span th:each="task,iter : ${foo.tasks}">
Ensuite, dans la boucle, vous pouvez faire référence à iter.index
et iter.size
.
Voir Tutoriel: Utiliser Thymeleaf - 6.2 Conserver l’état de l’itération .
Thymeleaf déclare toujours la variable d'état d'itération implicite si nous l'omettons.
<span th:each="task : ${foo.tasks}">
<span th:text="${taskStat.index} + ': ' + ${task.name}"></span>
</span>
Ici, le nom de la variable d'état est taskStat
, qui est l'agrégation de la variable task
et du suffixe Stat
.
Ensuite, dans la boucle, nous pouvons faire référence à taskStat.index
, taskStat.size
, taskStat.count
, taskStat.even
et taskStat.odd
, taskStat.first
et taskStat.last
.
Source: Tutoriel: Utiliser Thymeleaf - 6.2 Conserver l’état d’itération