python測試開發django(3)--url配置
阿新 • • 發佈:2020-12-06
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。