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

Spring MVC-JSP忽略"${message}",页面显示空白求助

解决Spring MVC中EL表达式(${})不显示/页面空白的问题

兄弟,我刚入门Spring MVC的时候也踩过这个EL表达式不显示的坑!别慌,咱们一步步排查,大概率是这几个地方出了问题:

1. 给JSP页面加“强制启用EL”的指令

有些老版本的Web模块(比如你试过的2.4)默认会忽略EL表达式,直接在你的JSP页面最顶部加上这行:

<%@ page isELIgnored="false" %>

另外记得把JSP的编码和内容类型配置好,避免乱码或其他隐性问题:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

2. 检查web.xml的配置是否正确

  • 如果用的是动态Web模块2.4(对应Servlet 2.4),必须在web.xml里显式开启EL,否则Tomcat会默认忽略:
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <el-ignored>false</el-ignored>
        </jsp-property-group>
    </jsp-config>
    
  • 如果用的是动态Web模块3.1(Servlet 3.1),要确保web.xml的根元素用最新的Schema声明,别用老的DTD,否则会触发兼容模式禁用EL:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    

3. 确认HelloController的数据有没有正确传到页面

这一步很关键!一定要检查你在Controller里有没有把数据放到Model/ModelAndView中,而且键名要和JSP里的${xxx}完全一致(大小写敏感!):
比如用Model的写法:

@Controller
public class HelloController {
    @RequestMapping("/hello")
    public String hello(Model model) {
        // 这里的"message"要和JSP里的${message}对应
        model.addAttribute("message", "Hello Spring MVC!");
        // 返回的"hello"要对应你的JSP文件名(比如hello.jsp)
        return "hello";
    }
}

如果用ModelAndView:

@RequestMapping("/hello")
public ModelAndView hello() {
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("message", "Hello Spring MVC!");
    return mv;
}

4. 检查视图解析器配置

确保Spring的配置文件(比如spring-servlet.xml或者servlet-context.xml)里配置了正确的视图解析器,不然Controller返回的视图名找不到对应的JSP:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 你的JSP文件所在的目录,比如放在/WEB-INF/views/下 -->
    <property name="prefix" value="/WEB-INF/views/"/>
    <!-- JSP文件的后缀 -->
    <property name="suffix" value=".jsp"/>
</bean>

5. 清理Tomcat缓存,重启试试

有时候Tomcat的缓存会导致页面没更新,你可以删掉Tomcat安装目录下work/Catalina/localhost/你的项目名这个文件夹,然后重启Tomcat,再访问试试。另外也可以看看Tomcat的日志(localhost.log或者catalina.log),有没有Controller映射错误或者JSP编译报错的信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:34:49