Model、ModelMap、ModelAndView的使用和區別


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。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM