model、modelMap、ModelAndView的使用和区别

1、Model的使用

数据传递:Model是通过addAttribute方法向页面传递数据的;

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

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

     /**
      * Model是每一次请求可以自动创建
      * @param model
      * @return
      */
     @RequestMapping("/test01")
     public String test01(Model model){
         model.addAttribute("param_id", "01");
         model.addAttribute("param_name", "spring-mvc");
        return "test";
    }        

2.modelMap的使用

1.model继承了modelMap,modelMap继承了LinkedMap(有序)。它们的根类是java.util.Map。

2.modelMap的使用方法与model相同,model可以接收各种类型的数据。如果接收的是List则model实际上就是modelMap

3.ModelAndView的使用

数据传递:ModelAndView通过addObject方法向页面传递数据;

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

return:return返回的是ModelAndView对象;

注意:ModelAndView需要设置页面跳转的路径!

ModelAndView设置跳转路径的两种方式:
第一种》在new ModelAndView时添加地址参数,如:

             ModelAndView mav = new ModelAndView("index");

第二种》使用ModelAndView的setViewname(String)方法去设置,如:

             mav.setViewName("test");
/**
       * ModelAndView需要我们自己创建
       * 可以指定跳转地址
       * @param model
       * @return
       */
      @RequestMapping("/test02")
      public ModelAndView test02(){
          //第一种方法:在创建ModelAndView对象时,指定跳转地址
         ModelAndView mav = new ModelAndView("test");
         //第二种方法:用方法setViewName,指定跳转地址
 //        mav.setViewName("test");
         mav.addObject("param_id", "02");
         mav.addObject("param_name", "ModelAndView");
         return mav;
     }

4. model 和 ModelAndView区别
  第一点:Model只是用来传输数据的,并不会进行业务的寻址。ModelAndView 却是可以进行业务寻址的;所以Model的返回值是url地址,而ModelAndView的返回值是ModelAndView对象;
  第二点:Model是每一次请求可以自动创建,但是ModelAndView 是需要我们自己去new的。所以使用Model时Controller的参数是Model。

名词解释:业务寻址?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值