1.ModelAndView();
用这个构造方法构造的实例主要用来在以后往其中加view设置和model对象。 给ModelAndView
实例设置view的方法有两个:
setViewName(String viewName) ;
setView(View view);
前者是使用viewname,后者是使用预先构造好的View对象,其中前者比较常用。事实上View是一个接口,而不是一个可以构造的具体类,我们只能通过其他途径来获取。
给ModelAndView实例设置model则比较复杂。有三个方法可以使用:
addObject(Object modelObject);
addObject(String modelName, Object modelObject);
addAllObjects(Map modelMap);
代码演示:
- public ModelAndView handleRequestInternal(
- HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- //实例化一个VIew的ModelAndView实例
- ModelAndView mav = new ModelAndView("hello");
- //添加一个带名的model对象
- mav.addObject("message", "Hello World!");
- return mav;
- }
2.ModelAndView(String viewName);
ModelAndView持有View的名称返回,之后View名称被view resolver,也就是实作org.springframework.web.servlet.View接口的实例解析。
3.ModelAndView(String viewName, Map model);
如果返回Model对象,则可以使用Map来收集这些Model对象,然后设定给ModelAndView。
4.ModelAndView(String viewName, String modelName, Object modelObject);
Map对象中设定好key与value值,之后可以在视图中取出,只是要返回一个Model对象。
5.ModelAndView(View view);
ModelAndView类别提供实作View接口的对象来作View的参数。
6.ModelAndView(View view, Map model);
ModelAndView类别提供实作View接口的对象来作View的参数。
7.ModelAndView(View view, String modelName, Object modelObject);
ModelAndView类别提供实作View接口的对象来作View的参数。
参数中model可以没有,但view必须有。