版权声明:本文为博主原创文章,未经博主允许不得转载。 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>