modelAndView:该对象中包含了一个model属性和一个view属性。
--model:其实是一个ModelMap类型。其实ModelMap是一个LinkedHashMap的子类。
--view:包含了一些视图信息。
当视图解释器解析ModelAndVIew是,其中model本生就是一个Map的实现类的子类。视图解析器将model中的每个元素都通过request.setAttribute(name, value);添加request请求域中。这样就可以在JSP页面中通过EL表达式来获取对应的值。
ModelMap:在方法参数中,指定一个该类型的参数。
两种方法:
1,modelAndView
/**
*返回modelAndView
*/
@RequestMapping(value="mav")
public ModelAndView mav(HttpServletRequest request,ModelMap map) {
//request.setAttribute("mav", "mav");
ModelAndView mav = new ModelAndView();
mav.setViewName("mav");
mav.addObject("mav");
//return new ModelAndView("mav");
return mav;
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
${mav}
</body>
</html>
2,ModelMap
/**
*返回modelAndView
*/
@RequestMapping(value="mm")
public String mm(HttpServletRequest request,ModelMap map) {
map.addAttribute("map1","map1");
map.put("map2", "map2");
return "map";
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
${map1}<br>
${map2}
</body>
</html>