ModelMap 和 ModelAndView 的区别

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的实例是由bboss mvc框架自动创建并作为控制器方法参数传入,用户无需自己创建。

Java代码  复制代码  收藏代码
  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. }  
Java代码   收藏代码
  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. }  


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

Java代码  复制代码  收藏代码
  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. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ModelModelMapModelAndView是Spring MVC框架中用于返回数据给前端页面的三种方式。它们的主要区别在于返回数据的类型和使用方法。 1. Model Model是Spring MVC框架中最基本的返回数据类型,它是一个接口,用于存储返回给前端页面的数据。在Controller中,可以通过方法参数中添加Model类型的参数来将数据传递给前端页面。 例如: ``` @RequestMapping("/index") public String index(Model model) { String message = "Hello, World!"; model.addAttribute("message", message); return "index"; } ``` 在这个例子中,我们将一个名为message的字符串添加到了Model中,并将其返回给了名为index的页面。在前端页面中,我们可以通过${message}来获取这个值。 2. ModelMap ModelMap也是用于存储返回给前端页面的数据的一种类型,它实现了Model接口。与Model不同的是,ModelMap还可以添加多个属性。在Controller中,可以通过方法参数中添加ModelMap类型的参数来将数据传递给前端页面。 例如: ``` @RequestMapping("/index") public String index(ModelMap model) { String message = "Hello, World!"; model.addAttribute("message", message); model.addAttribute("name", "John"); return "index"; } ``` 在这个例子中,我们将两个值分别为"Hello, World!"和"John"的属性添加到了ModelMap中,并将其返回给了名为index的页面。在前端页面中,我们可以通过${message}和${name}来获取这些值。 3. ModelAndView ModelAndView是一种包含ModelView的数据类型,它用于同时返回数据和页面。在Controller中,可以通过创建一个新的ModelAndView对象来将数据和页面一起返回给前端页面。 例如: ``` @RequestMapping("/index") public ModelAndView index() { String message = "Hello, World!"; ModelAndView modelAndView = new ModelAndView("index"); modelAndView.addObject("message", message); return modelAndView; } ``` 在这个例子中,我们创建了一个名为modelAndViewModelAndView对象,并将一个名为message的字符串添加到了Model中。最后,我们将这个对象返回给了名为index的页面。在前端页面中,我们可以通过${message}来获取这个值。 总的来说,ModelModelMapModelAndView都是用于返回数据给前端页面的三种方式。它们的主要区别在于返回数据的类型和使用方法。在实际开发中,我们可以根据具体需求选择合适的方式来返回数据给前端页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值