You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 06:15:29