1. 程式人生 > >Model,ModelMap,ModelAndView用法介紹

Model,ModelMap,ModelAndView用法介紹

1,Model
    Model只是用來傳輸資料的,並不會進行業務的定址。Model是一個介面,其實現類為ExtendedModelMap,繼承了ModelMap類。一般來說,可以用model來接收各種型別的資料,如果使用來接收一組資料List那麼這個時候的model實際上是ModelMap。Model通過addAttribute方法向頁面傳遞引數。
    Model的例項是spirng mvc框架來自動建立並作為控制器方法引數傳入,使用者無需自己建立,需要return 返回指定的頁面路徑。
    @RequestMapping("testModel")
    public String testModel(Model model) {

                // 接收查詢的資訊
                List<Category> cs1= categoryService.list();
                // 封裝了查詢的資料
                model.addAttribute("test", cs1);
                //重要!!需要給出返回model跳轉的路徑
                return "testModel";
        }
    
2,ModelMap
    ModelMap本身不能設定頁面跳轉的url地址別名或者物理跳轉地址,那麼我們可以通過控制器方法的字串返回值來設定跳轉url地址別名或者物理跳轉地址。request物件的setAttribute方法的作用(用來在一個請求過程中傳遞處理的資料),用法等同於Model。(通過addAttribute方法向頁面傳遞引數)
    ModelMap的例項是spirng mvc框架來自動建立並作為控制器方法引數傳入,使用者無需自己建立,需要return 返回指定的頁面路徑。
    @RequestMapping("testModelMap")
    public String testModelMap(ModelMap model) {

                // 接收查詢的資訊
                List<Category> cs2= categoryService.list();
                // 封裝了查詢的資料
                model.addAttribute("test", cs2);
                //重要!!需要給出返回model跳轉的路徑
                return "testModelMap";
        }
3,ModelAndView
    新增模型資料用addObject,設定檢視setViewName。ModelAndView的例項是需要我們手動new的,ModelAndView 可以自己定址,只需要return 返回其物件即可。
    @RequestMapping("testModelAndView")
    public ModelAndView testModelAndView(){
           //建立一個模型檢視物件
            ModelAndView mav = new ModelAndView();
            //獲取到查詢的資料
            List<Category> cs= categoryService.list();

            // //將資料放置到ModelAndView物件view中,第二個引數可以是任何java型別
            mav.addObject("cs", cs);
            // 放入jsp路徑
            mav.setViewName("testModelAndView");
             //返回ModelAndView物件mav
            return mav;
        }