1. 程式人生 > >05-springMVC前後臺數據傳遞之預設引數總結

05-springMVC前後臺數據傳遞之預設引數總結

在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() 的區別 因為今天跳了這個小坑.