如何使用Thymeleaf与Java动态生成指定格式的表格?
如何用Thymeleaf和Java在HTML中生成目标表格?
当前你的代码因后端数据结构设计不合理,导致渲染出的表格不符合预期。以下是修正方案:
后端代码修正
原代码中rows和columns的扁平列表结构无法表达每行的列数据,需改为二维列表,每个子列表对应一行的所有列值:
private Map<String, Object> createAdditionalContext() { Map<String, Object> additionalContext = new HashMap<>(); List<List<Integer>> tableRows = new ArrayList<>(); // 生成5行数据,每行起始数依次为1、6、11、16、21 for (int start = 1; start <= 25; start += 5) { List<Integer> row = new ArrayList<>(); // 添加第一组5个连续数字 for (int i = 0; i < 5; i++) { row.add(start + i); } // 添加第二组相同的5个连续数字 for (int i = 0; i < 5; i++) { row.add(start + i); } tableRows.add(row); } additionalContext.put("tableRows", tableRows); return additionalContext; }
前端Thymeleaf代码修正
遍历后端传入的二维列表,每行生成<tr>,再遍历行内元素生成<td>:
<table> <tbody> <tr th:each="row : ${tableRows}"> <td th:each="col : ${row}" th:text="${col}"></td> </tr> </tbody> </table>
修正后,后端生成的tableRows包含5个行列表,每个行列表有10个元素,Thymeleaf渲染后会完全匹配你期望的表格结构。
内容的提问来源于stack exchange,提问作者Roland Tömösközi
相关产品推荐
相关产品推荐

