ModelAndView也是SpringMVC中常用的数据返回对象。当控制器处理完请求时,通常会将包含视图对象和数据的ModelAndView对象一起返回前台。它的作用类似request对象的setAttribute()方法。
ModelAndView对象有两个作用:
1)设置转向地址(这也是ModelAndView和ModelMap的主要区别)。
2)将后台数据传回给前台页面。
ModelAndView使用起来也特别简单,在控制器中把前台页面需要的数据放到ModelAndView对象中,然后返回mv对象。下面通过示例演示使用ModelAndView对象返回数据到前台页面:
@RequestMapping(value="/detail/{id}")
public ModelAndView detail(PathVariable Long id){
ModelAndView mv = new ModelAndView();
User user = userService.getUserById(id);
//设置user对象的username属性
mv.addObject("user","user");
//地址跳转,设置返回的视图名称
mv.setViewName("detail");
return mv;
}
上面的示例中,先获取用户数据,然后将数据和对象一起返回到前台detail页面。这样SpringMVC将使用包含的视图对模型数据进行渲染。