★学习目标:
1、掌握返回值为ModelAndView类型的页面跳转
★思考任务:
1、怎么实现返回值为ModelAndView类型的页面跳转?
★任务学习:
★知识要点:
1、ModelAndView对象组成部分
使用方法的返回值可以设定跳转的逻辑视图名称,使用Model等对象实现页面跳转时传输数据。除此之外,Spring MVC还提供了兼顾视图和数据的对象ModelAndView,ModelAndView对象包含视图相关内容和模型数据两部分,其中视图相关的内容可以设置逻辑视图的名称,也可以设置具体的View实例;模型数据则会在视图渲染过程中被合并到最终的视图输出。
2、ModelAndView设置视图和数据模型的方法
| 方法声明 | 功能描述 |
| void setViewName(String viewName) | 为ModelAndView设置一个视图名,会覆盖预先存在的视图名称或视图 |
| void setView(View view) | 为ModelAndView设置一个视图,会覆盖预先存在的视图名称或视图 |
| ModelAndViewaddObject(Object attributeValue) | 向ModelAndView的数据模型中添加数据 |
| ModelAndViewaddObject(String attributeName, Object attributeValue) | 向ModelAndView的数据模型中添加指定名称的数据 |
| ModelAndViewaddAllObjects (Map<String, ?> modelMap) | 向ModelAndView的数据模型中添加数据。数据名称为Map中的元素的key,数据的值为Map中key对应的值 |
3、ModelAndView方法说明
setViewName()方法和setView()方法都是为ModelAndView对象设置视图的方法,其中前者使用更方便,因此setViewName()方法比较常用。后3个方法都是向ModelAndView对象中添加模型数据的,其中addObject(Object attributeValue)方法添加的attributeValue,默认名称为attributeValue类型全限定名的最后一个单词且首字母小写;addObject(String attributeName, Object attributeValue)方法可以在页面上以${attributeName}方式取出attributeValue。

