早上学习SpringMVC时遇到了这样一个问题:
下面代码使用了 ModelAndView 对象的 addObject(String attributeName,Object attributeValue)方法,但是在跳转到的 jsp 页面中无法获取到设置的 username 值
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/quick2")
public ModelAndView save2(){
/*
Module:封装数据
View:展示数据
*/
ModelAndView modelAndView = new ModelAndView();
//设置模型数据
modelAndView.addObject("username","jachin");
//设置视图
modelAndView.setViewName("success");
return modelAndView;
}
}
success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>success ${username}</h1>
</body>
</html>
造成这个问题的原因是项目中的 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>
<display-name>Archetype Created Web Application</display-name>
下面是修改后的:
<?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">
<display-name>Archetype Created Web Application</display-name>
修改后就可以正常获取了: