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

Thymeleaf th:each迭代失效,无法正常显示数据

Thymeleaf th:each迭代失效排查方案

1. 确认后端数据已正确传入Model

  • 检查Controller代码,确保已将stats集合添加到Model中,示例:
    @GetMapping("/stats")
    public String loadStats(Model model) {
        List<Stats> statsData = yourService.getStatsData();
        // 打印日志验证数据是否非空
        System.out.println("Stats data size: " + statsData.size());
        model.addAttribute("stats", statsData);
        return "stats-template"; // 对应templates目录下的模板文件名
    }
    
  • 确保statsData不是null且包含有效数据,空集合或null都会导致迭代无输出。

2. 核对变量与属性名的一致性

  • 前端${stats}的变量名必须和后端model.addAttribute("stats", ...)的键名完全一致,Thymeleaf对大小写敏感。
  • 实体类的属性名(如country、state、latestTotalCases)必须和前端data.country等调用的名称一致,且实体类必须提供对应的getter方法(Thymeleaf通过getter读取属性值),示例实体类:
    public class Stats {
        private String country;
        private String state;
        private int latestTotalCases;
    
        // 必须实现getter方法
        public String getCountry() { return country; }
        public String getState() { return state; }
        public int getLatestTotalCases() { return latestTotalCases; }
    
        // setter、构造方法按需实现
    }
    

3. 检查Thymeleaf命名空间是否引入

页面的根html标签必须包含Thymeleaf命名空间,否则所有th:*属性会被忽略:

<html xmlns:th="http://www.thymeleaf.org">

4. 确保通过Controller访问模板

不能直接访问src/main/resources/templates下的静态html文件,必须通过Controller的映射路径访问,这样Thymeleaf才会解析模板中的动态属性。

内容的提问来源于stack exchange,提问作者Anuj Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:24:26