ModelAndView、Model、ModelMap、RedirectAttributes的范围及关系分析

ModelAndView、Model、ModelMap、RedirectAttributes的范围及关系分析
在这几者中,ModelAndView、ModelMap、Model是直接可以放在控制器方法的参数中的,在Spring MVC运行的时候,会自动初始化它们。

  • 其中ModelMap和Model必须放在方法参数中才能完成初始化。若放在参数中进行初始化,则不论是Model的参数还是ModelMap的参数,Spring MVC都会对其进行实例化为BindingAwareModelMap,因此Model的参数和ModelMap的参数之间是可以进行相互转换的。
  • ModelAndView既可以放在方法参数中完成初始化,也可以在方法中进行手动实例化,在实例化ModelAndView后,ModeAndView对象中model属性默认为空,当调用它增加数据后,才自动创建实例。

在控制器返回的视图名称为重定向时,如果在数据模型中设置的是String类型,则默认以get的方式添加在重定向url之后。在控制器返回的视图名称为重定向时,如果要传递的数据不是String类型,则需要使用RedirectAttributes接口的实例进行传递,其中有个方法addFlushAttribute,可以传递自定义数据对象给目标重定向url。

上一篇:springmvc处理模型数据


下一篇:**Git分支管理策略