SpringMVC中model属性jsp页面无法解析的问题

问题

controller中给model设置属性,比如model.addAttribute("msg","some message")
然后通过EL在jsp中显示,${msg}, 但是jsp最后显示的还是${msg},而不是some message

demo:

controller

    public class SomeController extends AbstractController{
 
    @Override
      protected ModelAndView handleRequestInternal(HttpServletRequest request,
          HttpServletResponse response) throws Exception {
 
          ModelAndView model = new ModelAndView("HelloWorldPage");
          model.addObject("msg", "some message");
 
          return model;
    }
 
}

jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <body>
             ${msg}
  </body>
</html>

解决方法

1 使用JSP 1.2

如果你用的jsp1.2版本的DTD

web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
//...
</web-app>

那么EL表达式是默认关闭,需要在jsp页面添加<%@ page isELIgnored="false" %>

jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<html>
  <head>
  </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="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
//...
</web-app>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,877评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,882评论 0 11
  • 一步一步的搭建JAVA WEB项目,采用Maven构建,基于MYBatis+Spring+Spring MVC+B...
    叶子的翅膀阅读 12,798评论 5 25
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 周日的午饭时间,过了平时午饭的点儿,四下寻找可以吃饭的饭馆。 那天去的地方饭馆不少,但都没有要走进去的想法。 饥肠...
    绘心怡笑阅读 462评论 0 0