05-springMVC前後臺數據傳遞之預設引數總結
阿新 • • 發佈:2018-12-22
在controller類裡邊的方法中是有預設的引數的,形參如果是預設的引數的話處理器介面卡會預設識別並且進行賦值。
1. 後臺獲取頁面的資料
形參型別 | 作用 | 方法 |
---|---|---|
* HttpServletRequest | 通過request物件獲取請求資訊 | request.getParameter(" ") |
* HttpServletResponse | 通過response處理響應資訊 | … |
* HttpSession | 通過session 物件得到 | session.getAttribute(" ") |
頁面:
後臺獲取:
2. 後臺向頁面傳遞資料
2.1 ModelAndView
利用ModelAndView來想頁面傳遞引數
//建立ModelAndView物件
ModelAndView mav = new ModelAndView();
//設定模型資料
mav.addObject("msg","hahahahahaha!");
mav.setViewName("hello");
return mav;
ModelAndView 主要使用的就是新增引數 addObject()和
設定檢視setViewName()
設定完以後直接返回該物件檢視解析器會自動解析。
2.2 Model
使用Model向頁面傳遞資料,Model是一個介面, 在引數裡直接宣告model即可。
若使用Model則可以不用ModelAndView, 可以用Mode物件想頁面傳遞資料, View物件則可以使用String返回值替代。檢視解析器也會自動解析。
這種方式需要兩者結合使用。 比較常用
如下示例:
- 總結: 不論是Model還是ModelAnView , 本質上都是使用Request物件向jsp傳遞資料。 (在頁面用request物件可以獲得model物件放入的object的 值,這點也可證明上述結論)
顯示結果
2.2 ModelMap
ModelMap是Model介面的實現類,也可以通過ModelMap向頁面傳遞資料。
使用Model和ModelMap的效果是一樣的,上面也說了Model是一個介面,而我們在例項化Model的時候,例項化的正式他的實現類ModelMap。故兩者是一樣的效果。程式碼如下所示:
過程中發現一個小問題 , 下篇分析request.getParameter() 和 reqeust.getAttribute() 的區別 因為今天跳了這個小坑.