Spring MVC EL ModelAndView传给JSP的值不显示

在spring mvc开发过程中,我们会时常用到ModelAndView来进行一个参数的传递,然后在JSP页面用EL进行显示,然而有时得到的却不是我们传的value而是key。比如

public ModelAndView modelTest(HttpServletResponse response, HttpServletRequest request){
        ModelAndView mv = new ModelAndView();
        mv.addObject("test","message");
        mv.setViewName("test");
        return mv;
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>
<body>
    ${test}
</body>
</html>    
问题就来了,得到的却是*${test}*而不是*message*。

原来在于JSP1.2的声明

解决方法:
1、JSP1.2
如果你的JSP版本为1.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默认是关闭的,我们需要进行手动开启。在页面上加上这句
<%@ page isELIgnored=”false”%>

<%@ page isELIgnored="false"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>
<body>
    ${test}
</body>
</html>    

2、JSP2.0
JSP2.0默认是开启的,所以声明2.0就可直接使用。

<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>

就现在而言基本都是2.0及以上版本了,2.0的话两种方法均可。

转载:http://blog.csdn.NET/problc/article/details/23768999

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页