一、ModelMap和ModelAndView
1.1、ModelMap
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:
- addAttribute(String key,Object value);
在页面上可以通过el变量方式$key或者bboss的一系列数据展示标签获取并展示modelmap中的数据。
modelmap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的返回值来设置跳转url地址别名或者物理跳转地址。
1.2、ModelAndView
ModelAndView对象有两个作用:
- 设置转向地址(这也是ModelAndView和ModelMap的主要区别) ModelAndView view = new ModelAndView("path:ok");
- 用于传递控制方法处理结果数据到结果页面,也就是说我们把需要在结果页面上需要的数据放到ModelAndView对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数: addObject(String key,Object value);在页面上可以通过el变量方式$key或者bboss的一系列数据展示标签获取并展示ModelAndView中的数据。
二、使用方法
2.1、ModelMap
ModelMap的实例是springmvc框架自动创建并作为控制器方法参数传入,用户无需自己创建。
1 public String xxxxmethod(String someparam,ModelMap model) 2 { 3 //省略方法处理逻辑若干 4 //将数据放置到ModelMap对象model中,第二个参数可以是任何java类型 5 model.addAttribute("key",someparam); 6 ...... 7 //返回跳转地址 8 return "path:handleok"; 9 } 10 11 public String xxxxmethod(String someparam,ModelMap model) 12 { 13 //省略方法处理逻辑若干 14 //将数据放置到ModelMap对象model中,第二个参数可以是任何java类型 15 model.addAttribute("key",someparam); 16 ...... 17 //返回跳转地址 18 return "path:handleok"; 19 }
2.2、ModelAndView
ModelAndView的实例是由用户手动创建的,这也是和ModelMap的一个区别。
1 public ModelAndView xxxxmethod(String someparam) 2 { 3 //省略方法处理逻辑若干 4 //构建ModelAndView实例,并设置跳转地址 5 ModelAndView view = new ModelAndView("path:handleok"); 6 //将数据放置到ModelAndView对象view中,第二个参数可以是任何java类型 7 view.addObject("key",someparam); 8 ...... 9 //返回ModelAndView对象view 10 return view; 11 }