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

使用header作为Model属性时JSP出现异常结果的原因

问题原因与解决方案

问题原因

header是JSP的内置隐含对象,它代表当前HTTP请求的所有请求头信息集合。当EL表达式${header}被解析时,JSP引擎会优先匹配这个内置对象,完全忽略你在Spring MVC控制器的Model中添加的同名属性,所以最终显示的是请求头信息而非你设置的header1。

解决方案

有两种可行的解决方式:

  • 重命名Model属性(推荐)
    避免使用JSP内置对象的名称作为Model属性名,将控制器中的属性名修改为其他名称,比如headerContent:

    @RequestMapping("/ktSessions")
    public String ktSessionsPage(Model model) {
        model.addAttribute("options","option1");
        model.addAttribute("headerContent","header1"); // 修改属性名
        return "ktSessions";
    }
    

    对应JSP页面同步修改表达式:

    <div class="main">
        <p>Header is <c:out value="${headerContent }"></c:out> </p>
    </div>
    
  • 指定作用域访问Model属性
    如果必须保留header作为属性名,可以通过明确指定作用域来访问你设置的Model属性(Model属性默认存入request作用域):

    <div class="main">
        <p>Header is <c:out value="${requestScope.header }"></c:out> </p>
    </div>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:15:34