Spring框架中ModelAndView、Model、ModelMap的区别
2017-06-05 18:52
501 查看
1. Model
Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。public class ExtendedModelMap extends ModelMap implements Model1
2.ModelMap
ModelMap的声明格式:public class ModelMap extends LinkedHashMap<String, Object>1
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用:用来在一个请求过程中传递处理的数据。ModelMap或者Model通过addAttribute方法向页面传递参数,其中addAttribute方法参数有多种方式:
public ModelMap addAttribute(String attributeName, Object attributeValue){...} public ModelMap addAttribute(Object attributeValue){...} public ModelMap addAllAttributes(Collection<?> attributeValues) {...} public ModelMap addAllAttributes(Map<String, ?> attributes){...}1
2
3
4
在页面上可以通过el表达式语言$attributeName等系列数据展示标签获取并展示modelmap中的数据。
modelmap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的字符串返回值来设置跳转url地址别名或者物理跳转地址。
3.ModelAndView
ModelAndView对象有两个作用:(1). 设置转向地址,这也是ModelAndView和ModelMap的主要区别.设置方式如下所示:
ModelAndView view = new ModelAndView("path:ok");1
或者通过setViewName方式:
public void setViewName(String viewName){...}
(2). 将控制器方法中处理的结果数据传递到结果页面,也就是把在结果页面上需要的数据放到ModelAndView对象中即可,其作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:
public ModelAndView addObject(String attributeName, Object attributeValue){...} public ModelAndView addObject(Object attributeValue){...}1
在页面上也是可以通过el表达式语言$attributeName等系列数据展示标签获取并展示ModelAndView中的数据。
4. 使用方式如下:
(1) ModelMapModelMap的实例是spirng mvc框架自动创建并作为控制器方法参数传入,用户无需自己创建。
public String xxxxmethod(String someparam,ModelMap model) { //省略方法处理逻辑若干 //将数据放置到ModelMap对象model中,第二个参数可以是任何java类型 model.addAttribute("key",someparam); ...... //返回跳转地址 return "path:handleok"; }1
2
3
4
(2) 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; }1
2
3
4
5
10
以上内容参考这里
相关文章推荐
- Spring框架中ModelAndView、Model、ModelMap的区别
- Spring框架中ModelAndView、Model、ModelMap区别
- SPRING框架中ModelAndView、Model、ModelMap区别
- Spring框架中ModelAndView、Model、ModelMap的区别
- Spring框架中ModelAndView、Model、ModelMap区别
- SPRING框架中ModelAndView、Model、ModelMap区别【转】
- SpringMVC Model、ModelMap和ModelAndView的区别和用法
- springMVC Model ModelMap 和 ModelAndView的区别
- SpringMVC框架中ModelAndView、Model、ModelMap的区别与使用
- Spring中Model,ModelMap以及ModelAndView之间的区别
- springMVC Model、 ModelMap 和 ModelAndView的区别
- SpringMVC中model,modelMap和modelAndView的区别
- SpringMVC Model、ModelMap和ModelAndView的区别和用法
- Spring中Model,ModelMap以及ModelAndView之间的区别
- springmvc Model ModelMap 和 ModelAndView的区别
- SpringMVC 中Model、ModelMap和ModelAndView的区别和用法
- springMVC Model、 ModelMap 和 ModelAndView的区别
- springMVC Model、 ModelMap 和 ModelAndView的区别
- sringmvc 返回 Model,ModelMap, ModelAndView 区别
- ModelAndView 和 Model ModelMap 返回值区别