spring mvc EL ModelAndView的 Model 值 在jsp中不显示

问题: spring mvc开发过程中, 经常会给model addAttribute, 然后通过EL在jsp中显示,比如 ${msg},  但是有时候会出现 jsp最后显示的还是${msg},而不是msg赋值过的。 Spring Controller import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; public class ABCController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView model = new ModelAndView("HelloWorldPage"); model.addObject("msg", "hello world"); return model; } } JSP page <%@ taglib prefix="c" uri="; %> <html> <body>              ${msg} </body> </html> 解决方法: 原因在于老的JSP 1.2 声明. 1. JSP 1.2 如果你用的jsp1.2版本的DTD web.xml <!DOCTYPE web-app PUBLIC  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  ".dtd" > <web-app> //... </web-app> EL是默认关闭的。。。必须手动打开。<%@ page isELIgnored="false" %> <%@ taglib prefix="c" uri="; %> <html> <head> <%@ page isELIgnored="false" %> </head> <body>            ${msg} </body> </html> 2. JSP 2.0 JSP2.0默认是打开支持EL的,所以声明jsp2.0就可以直接用了。 web.xml <web-app id="WebApp_ID" version="2.4"  xmlns=";  xmlns:xsi=";  xsi:schemaLocation="  .xsd"> //... </web-app>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-11,如有侵权请联系 cloudcommunity@tencent 删除jspmvcspringelmodel