SPRING框架中ModelAndView、Model、ModelMap區別
阿新 • • 發佈:2022-04-29
注意:如果方法聲明瞭註解@ResponseBody ,則會直接將返回值輸出到頁面。
首先介紹ModelMap[Model]和ModelAndView的作用
Model 是一個介面, 其實現類為ExtendedModelMap,繼承了ModelMap類。 ModelMap ModelMap物件主要用於傳遞控制方法處理資料到結果頁面,也就是說我們把結果頁面上需要的資料放到ModelMap物件中即可,他的作用類似於request物件的setAttribute方法的作用,用來在一個請求過程中傳遞處理的資料。通過以下方法向頁面傳遞引數: addAttribute(String key,Object value); 在頁面上可以通過el變數方式$key或者bboss的一系列資料展示標籤獲取並展示modelmap中的資料。 modelmap本身不能設定頁面跳轉的url地址別名或者物理跳轉地址,那麼我們可以通過控制器方法的返回值來設定跳轉url地址別名或者物理跳轉地址。 ModelAndView
public String xxxxmethod(String someparam,ModelMap model)
{
//省略方法處理邏輯若干
//將資料放置到ModelMap物件model中,第二個引數可以是任何java型別
model.addAttribute("key",someparam);
......
//返回跳轉地址
return "path:handleok";
}
ModelAndView
public ModelAndView xxxxmethod(String someparam)
{
//省略方法處理邏輯若干
//構建ModelAndView例項,並設定跳轉地址
ModelAndView view = new ModelAndView("path:handleok");
//將資料放置到ModelAndView物件view中,第二個引數可以是任何java型別
view.addObject("key",someparam);
......
//返回ModelAndView物件view
return view;
}
到此bboss mvc中ModelMap和ModelAndView兩個物件的作用和使用方法介紹完畢
如下為我自己寫的測試程式碼
@RequestMapping(value = "/demo",method = RequestMethod.GET)
public ModelAndView getBusinessIdListByIp(@RequestParam("ip") String ip,@RequestParam("phoneId") String phoneId,Model model){
ModelAndView mav = new ModelAndView();
model.addAttribute("ip", ip);
model.addAttribute("phoneId", phoneId);
mav.addObject(model);
mav.setViewName("user/mav");
return mav;
}
@RequestMapping(value = "/demo2",method = RequestMethod.GET)
public ModelAndView getBusinessIdListByIp(){
return new ModelAndView("user/mav","key",new String("makeHappy"));
}