轉載來源:http://www.cnblogs.com/google4y/p/3421017.htmlhtml
注意:若是方法聲明瞭註解@ResponseBody ,則會直接將返回值輸出到頁面。java
首先介紹ModelMap[Model]和ModelAndView的做用mvc
Model 是一個接口, 其實現類爲ExtendedModelMap,繼承了ModelMap類。
ModelMap
ModelMap對象主要用於傳遞控制方法處理數據到結果頁面,也就是說咱們把結果頁面上須要的數據放到ModelMap對象中便可,他的做用相似於request對象的setAttribute方法的做用,用來在一個請求過程當中傳遞處理的數據。經過如下方法向頁面傳遞參數:
addAttribute(String key,Object value);
在頁面上能夠經過el變量方式$key或者bboss的一系列數據展現標籤獲取並展現modelmap中的數據。
modelmap自己不能設置頁面跳轉的url地址別名或者物理跳轉地址,那麼咱們能夠經過控制器方法的返回值來設置跳轉url地址別名或者物理跳轉地址。
ModelAndView
ModelAndView對象有兩個做用:
做用一 設置轉向地址,以下所示(這也是ModelAndView和ModelMap的主要區別)
ModelAndView view = new ModelAndView("path:ok");
做用二 用於傳遞控制方法處理結果數據到結果頁面,也就是說咱們把須要在結果頁面上須要的數據放到ModelAndView對象中便可,他的做用相似於request對象的setAttribute方法的做用,用來在一個請求過程當中傳遞處理的數據。經過如下方法向頁面傳遞參數:
addObject(String key,Object value);
在頁面上能夠經過el變量方式$key或者bboss的一系列數據展現標籤獲取並展現ModelAndView中的數據。
做用介紹完了後,接下來介紹使用方法
ModelMap
ModelMap的實例是由bboss mvc框架自動建立並做爲控制器方法參數傳入,用戶無需本身建立。app
public String xxxxmethod(String someparam,ModelMap model) { //省略方法處理邏輯若干 //將數據放置到ModelMap對象model中,第二個參數能夠是任何java類型 model.addAttribute("key",someparam); ...... //返回跳轉地址 return "path:handleok"; }
ModelAndView
ModelAndView的實例是由用戶手動建立的,這也是和ModelMap的一個區別。框架
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兩個對象的做用和使用方法介紹完畢測試
以下爲我本身寫的測試代碼google
1 @RequestMapping(value = "/demo",method = RequestMethod.GET) 2 public ModelAndView getBusinessIdListByIp(@RequestParam("ip") String ip,@RequestParam("phoneId") String phoneId,Model model){ 3 ModelAndView mav = new ModelAndView(); 4 model.addAttribute("ip", ip); 5 model.addAttribute("phoneId", phoneId); 6 mav.addObject(model); 7 mav.setViewName("user/mav"); 8 return mav; 9 } 10 11 @RequestMapping(value = "/demo2",method = RequestMethod.GET) 12 public ModelAndView getBusinessIdListByIp(){ 13 return new ModelAndView("user/mav","key",new String("makeHappy")); 14 }