thymeleafとeachメソッド

今回のお題

本日のお題は、"Thymeleaf内でeachメソッドを使う方法"です。

eachメソッドという言い方をするのかはわかりませんが、要は要素を全て展開する方法ということですね。

コード例

論より証拠ということで、実際の使用例を見てみましょう。

あるクラスの生徒全員を要素として持つstudentsというMap(キーが出席番号でバリューが生徒名)に対して、その中から1人を選ぶチェックボックスを作成することを想定しています。

<div th:each="item:${students}">

    <input type="radio" name="student" th:value="${item.key}" th:id="${item.value}">

    <label th:for="${item.value} th:text="${item.value}"></label>

</div>

 

th:each="item:${students}"

div要素のeach属性としてstudentsというMapを指定し、その要素をitemという変数に入れて順番に展開しています。

こうすることで、div要素とその子要素がitemの数だけ繰り返されます。

また、itemの中身はitem.valueと$item.keyでそれぞれ取得可能です。