Java + Thymeleafでth:eachの繰り返し表示を整理
問題
コントローラーからのデータをテーブル表示で並べてくれとの要件
問題は一部がList型なため、そのサイズ分の行数必要になり、
その他のデータは中身が同じなため、同じデータが繰り返し表示されてなんか嫌だった
やったこと
そこで、前回も大変お世話になった#numbers.sequence
を使って解決
繰り返し表示する必要のない列は最初の行だけ表示するよう、
th:if="${i == 0}"
で制御して、th:rowspan="${list.size()}"
で結合
これで繰り返し表示が必要なものだけ、サイズ分行数が表示され、
それ以外は、大きな一行でまとまったテーブルの完成
<table> <thead> <tr> <th>1</th> <th>2</th> <th>3</th> </tr> </thead> <tbody> <tr th:each="i : ${#numbers.sequence(0, sampleForm.sampleList.size()-1)}"> <td th:if="${i == 0}" th:rowspan="${sampleForm.sampleList.size()}" th:text="1"></td> <td th:if="${i == 0}" th:rowspan="${sampleForm.sampleList.size()}" th:text="2"></td> <td th:text="${sampleForm.sampleList[i]}"></td> </tr> </tbody> </table>