spring框架中ModelAndView、Model、ModelMap区别

转载来源:http://www.cnblogs.com/google4y/p/3421017.htmlhtml

 

注意:若是方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。java

 

首先介绍ModelMap[Model]和ModelAndView的做用mvc

Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。 
ModelMap
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说咱们把结果页面上须要的数据放到ModelMap对象中便可,他的做用相似于request对象的setAttribute方法的做用,用来在一个请求过程当中传递处理的数据。经过如下方法向页面传递参数:
addAttribute(String key,Object value);
在页面上能够经过el变量方式$key或者bboss的一系列数据展现标签获取并展现modelmap中的数据。
modelmap自己不能设置页面跳转的url地址别名或者物理跳转地址,那么咱们能够经过控制器方法的返回值来设置跳转url地址别名或者物理跳转地址。

ModelAndView
ModelAndView对象有两个做用:
做用一 设置转向地址,以下所示(这也是ModelAndView和ModelMap的主要区别)
ModelAndView view = new ModelAndView("path:ok");

做用二 用于传递控制方法处理结果数据到结果页面,也就是说咱们把须要在结果页面上须要的数据放到ModelAndView对象中便可,他的做用相似于request对象的setAttribute方法的做用,用来在一个请求过程当中传递处理的数据。经过如下方法向页面传递参数:
addObject(String key,Object value);

在页面上能够经过el变量方式$key或者bboss的一系列数据展现标签获取并展现ModelAndView中的数据。

做用介绍完了后,接下来介绍使用方法


ModelMap
ModelMap的实例是由bboss mvc框架自动建立并做为控制器方法参数传入,用户无需本身建立。app

public String xxxxmethod(String someparam,ModelMap model)
{
     //省略方法处理逻辑若干
      //将数据放置到ModelMap对象model中,第二个参数能够是任何java类型
      model.addAttribute("key",someparam);
     ......
     //返回跳转地址
      return "path:handleok";
}



ModelAndView
ModelAndView的实例是由用户手动建立的,这也是和ModelMap的一个区别。框架

public ModelAndView xxxxmethod(String someparam)
{
     //省略方法处理逻辑若干
      //构建ModelAndView实例,并设置跳转地址
      ModelAndView view = new ModelAndView("path:handleok");
      //将数据放置到ModelAndView对象view中,第二个参数能够是任何java类型
      view.addObject("key",someparam);
     ......
     //返回ModelAndView对象view
      return view;
}



到此bboss mvc中ModelMap和ModelAndView两个对象的做用和使用方法介绍完毕测试

以下为我本身写的测试代码google

 1 @RequestMapping(value = "/demo",method = RequestMethod.GET)
 2     public ModelAndView getBusinessIdListByIp(@RequestParam("ip") String ip,@RequestParam("phoneId") String phoneId,Model model){
 3         ModelAndView mav = new ModelAndView();
 4         model.addAttribute("ip", ip);
 5         model.addAttribute("phoneId", phoneId);
 6         mav.addObject(model);
 7         mav.setViewName("user/mav");
 8         return mav;
 9     }
10     
11     @RequestMapping(value = "/demo2",method = RequestMethod.GET)
12     public ModelAndView getBusinessIdListByIp(){
13         return new ModelAndView("user/mav","key",new String("makeHappy"));
14     }
相关文章
相关标签/搜索