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

Spring Boot中FreeMarker报变量null或缺失错误的原因排查

错误原因分析

以下是可能导致FreeMarker模板提示name变量为null或缺失的几个常见原因:

  • Controller未将请求参数传递到模板模型
    如果你的Controller方法仅返回模板名称,没有从请求中获取name参数并将其添加到Model/ModelMap/ModelAndView中,模板就无法访问到该变量。例如:

    @GetMapping("/signup")
    public String showSignup() {
        // 未处理请求参数name,也未添加到模型
        return "signup";
    }
    

    这种情况下,即使URL携带了name参数,模板仍然会找不到该变量。

  • 参数名称或模型键名不匹配
    若Controller中接收的参数名称与请求参数不一致,或者将参数存入模型时使用的键名和模板中引用的键名不匹配,也会导致报错。比如:

    • Controller接收的是username而非name:public String showSignup(@RequestParam("username") String name)
    • 存入模型时用了错误的键:model.addAttribute("username", name),但模板里用的是${name}
  • FreeMarker启用了严格语法配置
    如果Spring Boot配置中开启了spring.freemarker.settings.strict_syntax=true,FreeMarker会对不存在的变量直接抛出错误,而不是默认显示空字符串。此时即使参数存在但未传递到模型,也会触发该报错。

  • 模板文件加载异常
    若模板文件不在默认的src/main/resources/templates目录下,或者存在重名模板导致加载了未正确引用变量的旧版本,同样会出现变量缺失的提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:41:07