ModelAndView
该对象中包含了一个model属性和一个view属性
model:其实是一个ModelMap类型。其实ModelMap是一个LinkedHashMap的子类
view:包含了一些视图信息
当视图解释器解析ModelAndVIew是,其中model本生就是一个Map的实现类的子类。视图解析器将model中的每个元素都通过request.setAttribute(name, value);添加request请求域中。这样就可以在JSP页面中通过EL表达式来获取对应的值
1、向ModelAndView中添加数据
方法1:可以通过ModelAndView的方法
public ModelAndView addObject(String attributeName, Object attributeValue)
具体代码
1 ModelAndView mav=new ModelAndView("hello"); 2 mav.addObject("time", new Date());
方法2:由于我们知道其model属性是一个Map的实现类。那么可以通过Map的方法来实现
1 mav.getModel().put("name", "caoyc");
完整代码:
1 @RequestMapping("/test") 2 public ModelAndView test(){ 3 ModelAndView mav=new ModelAndView("hello"); 4 mav.addObject("time", new Date()); 5 mav.getModel().put("name", "caoyc"); 6 7 return mav; 8 }
在实例化ModelAndView时,其中参数为视图名称
JSP页面
1 time:${requestScope.time} 2 <br/> 3 name:${name }
显示结果: