web-dev-qa-db-ja.com

Thymeleaf-インデックスでリストをループする方法

インデックスでループするにはどうすればよいですか?

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

Thymeleaf th:eachを使用すると、反復ステータス変数を宣言できます

<span th:each="task,iter : ${foo.tasks}">

次に、ループ内でiter.indexおよびiter.sizeを参照できます。

チュートリアル:Thymeleafの使用-6.2反復ステータスの保持 を参照してください。

70
Jim Garrison

Thymeleafでは、暗黙的な反復ステータス変数を省略すると常に宣言します。

<span th:each="task : ${foo.tasks}">
    <span th:text="${taskStat.index} + ': ' + ${task.name}"></span>
</span>

ここで、ステータス変数名はtaskStatです。これは、変数taskと接尾辞Statの集合です。

次に、ループ内で、taskStat.indextaskStat.sizetaskStat.counttaskStat.evenおよびtaskStat.oddtaskStat.firstおよびtaskStat.lastを参照できます。 。

ソース: チュートリアル:Thymeleafの使用-6.2反復ステータスの保持

6
naXa