[Problem] spring MVC JSP页面取不到ModelAndView传递的值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fox_bert/article/details/86709572

遇到的问题:在java代码中设置 了massage但是在jsp页面使用jstl取不到传递的值

事件分析:创建maven工程时,idea自动添加的web.xml中的jsp页面头约束版本太低

web.xml

//这个是自动生成的文件头,会出现jsp接不到值的问题

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



//将web.xml文件里上述的文件头替换为下面的这个就ok了

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
...
</web-app>



//如果还不行再尝试使用这个

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
...
</web-app>

Java Code

package com.demo.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {
    public HelloController(){
        System.out.println("controller constructor");
    }

    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        //1、收集参数、验证参数
        //2、绑定参数到命令对象
        //3、将命令对象传入业务对象进行业务处理
        //4、选择下一个页面
        System.out.println("controller");
        ModelAndView mv = new ModelAndView();
        //添加模型数据 可以是任意的POJO对象
        mv.addObject("message", "Hello World!");
        //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
        mv.setViewName("hello");
        return mv;
    }
}

JSP Code

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello</title>
</head>
<body>
${message}<br/>
<%=request.getAttribute("message")%>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/fox_bert/article/details/86709572