ModelMap和ModelAndView

本文详细解释了Spring MVC框架中的ModelMap和ModelAndView的使用方法,包括它们的功能、实例用法以及如何在控制器方法中进行数据传递和页面跳转。

一、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 }  

 

 

转载于:https://www.cnblogs.com/geekdc/p/5275344.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值