web-dev-qa-db-fra.com

Thymeleaf - Comment boucler une liste par index

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})}"
20
richersoon

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 .

57
Jim Garrison

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

2
naXa