欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Model、ModelMap、ModelAndView的使用和区别

程序员文章站 2022-08-11 15:04:34
1、Model的使用 数据传递:Model是通过addAttribute方法向页面传递数据的; 数据获取:JSP页面可以通过el表达式或C标签库的方法获取数据; return:return返回的是指定的页面路径; 2、ModelMap的使用 ModelMap的使用与Model相同,ModelMap是 ......

1、model的使用

  数据传递:model是通过addattribute方法向页面传递数据的;

  数据获取:jsp页面可以通过el表达式或c标签库的方法获取数据;

  return:return返回的是指定的页面路径;

 1     /**
 2      * model是每一次请求可以自动创建
 3      * @param model
 4      * @return
 5      */
 6     @requestmapping("/test01")
 7     public string test01(model model){
 8         model.addattribute("param_id", "01");
 9         model.addattribute("param_name", "spring-mvc");
10         return "test";
11     }        

2、modelmap的使用

  modelmap的使用与model相同,modelmap是一种特殊的model,一般来说,model可以接收各种类型的数据,如果接收的数据是list,那么这个时候model实际上是modelmap。

3、modelandview的使用

  数据传递:modelandview通过addobject方法向页面传递数据;

  数据获取:jsp页面可以通过el表达式或c标签库的方法获取数据(与model的获取方式相同);

  return:return返回的是modelandview对象;

  modelandview设置跳转地址有两个方式:

  第一种:在new modelandview时添加地址参数,如:

      modelandview mav = new modelandview("test");

  第二种:使用modelandview的setviewname(string)方法去设置,如:

      mav.setviewname("test");
 1   /**
 2      * modelandview需要我们自己创建
 3      * 可以指定跳转地址
 4      * @param model
 5      * @return
 6      */
 7     @requestmapping("/test02")
 8     public modelandview test02(){
 9         //第一种方法:在创建modelandview对象时,指定跳转地址
10         modelandview mav = new modelandview("test");
11         //第二种方法:用方法setviewname,指定跳转地址
12 //        mav.setviewname("test");
13         mav.addobject("param_id", "02");
14         mav.addobject("param_name", "modelandview");
15         return mav;
16     }

4、model与modelandview的区别

  第一点:model只是用来传输数据的,并不会进行业务的寻址。modelandview 却是可以进行业务寻址的;所以model的返回值是url地址,而modelandview的返回值是modelandview对象;

  第二点:model是每一次请求可以自动创建,但是modelandview 是需要我们自己去new的。所以使用model时controller的参数是model。