首页 > 代码库 > ModelMap和ModelAndView

ModelMap和ModelAndView

ModelMap:

ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:addAttribute(String key,Object value);

在页面上可以通过el变量方式$key或者框架的一系列数据展示标签获取并展示ModelMap中的数据。

modelmap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的返回值来设置跳转url地址别名或者物理跳转地址。

ModelMap的实例是由spring mvc框架自动创建并作为控制器方法参数传入,用户无需自己创建。

BaseFrame中:

@RequestMapping(value = http://www.mamicode.com/"/toEditWorkItem.action")

public String toEdit(ModelMap model, @RequestParam Long work_id,@RequestParam String type){

         if(null!=work_id)

         model.addAttribute("bean", this.workitemservice.getBean(work_id));

         model.addAttribute("type", type);

         returnRES_PACKAGE + "/edit";

}

ModelAndView:

ModelAndView对象有两个作用:
作用一:设置转向地址,如下所示(这也是ModelAndViewModelMap的主要区别)
ModelAndView view = new ModelAndView("path:ok");
作用二:用于传递控制方法处理结果数据到结果页面,也就是说我们把需要在结果页面上需要的数据放到ModelAndView对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:addObject(String key,Objectvalue);
在页面上可以通过el变量方式$key或者框架的一系列数据展示标签获取并展示ModelAndView中的数据。

public ModelAndView testMethod(String someparam){     

      //构建ModelAndView实例,并设置跳转地址  

      ModelAndView view = new ModelAndView("path:handleok");  

      //将数据放置到ModelAndView对象view,第二个参数可以是任何java类型  

      view.addObject("key",someparam);     

      //返回ModelAndView对象view  

      return view;    

}