SpringMVC框架 第5章 處理響應(yīng)數(shù)據(jù)
第5章 處理響應(yīng)數(shù)據(jù)
5.1 SpringMVC 輸出模型數(shù)據(jù)概述
5.1.1提供了以下幾種途徑輸出模型數(shù)據(jù)
? 1)? ModelAndView: 處理方法返回值類型為 ModelAndView 時(shí), 方法體即可通過(guò)該對(duì)象添加模型數(shù)據(jù)
? 2)? Map 及 Model: 入?yún)?springframework.ui.Model、
org.springframework.ui.ModelMap 或 java.uti.Map 時(shí),處理方法返回時(shí),Map 中的數(shù)據(jù)會(huì)自動(dòng)添加到模型中。
? 3)? @SessionAttributes: 將模型中的某個(gè)屬性暫存到 HttpSession 中,以便多個(gè)請(qǐng)求之間可以共享這個(gè)屬性
? 4)? @ModelAttribute: 方法入?yún)?biāo)注該注解后, 入?yún)⒌膶?duì)象就會(huì)放到數(shù)據(jù)模型中
5.2處理模型數(shù)據(jù)之 ModelAndView
5.2.1?ModelAndView介紹
? 1)? 控制器處理方法的返回值如果為 ModelAndView, 則其既包含視圖信息,也包含模型
數(shù)據(jù)信息。
2)添加模型數(shù)據(jù):
MoelAndView addObject(String attributeName, Object attributeValue)
ModelAndView addAllObject(Map<String, ?> modelMap)
3)設(shè)置視圖:
void setView(View view)
void setViewName(String viewName)
5.2.2 實(shí)驗(yàn)代碼
? 1)? 增加控制器方法? ? 4)? 斷點(diǎn)調(diào)試
5.2.2 源碼解析
5.3 處理模型數(shù)據(jù)之 Map
5.3.1?Map介紹
1)Spring MVC 在內(nèi)部使用了一個(gè) org.springframework.ui.Model 接口存儲(chǔ)模型數(shù)據(jù)
具體使用步驟
2)Spring MVC 在調(diào)用方法前會(huì)創(chuàng)建一個(gè)隱含的模型對(duì)象作為模型數(shù)據(jù)的存儲(chǔ)容器。
3)如果方法的入?yún)?Map 或 Model 類型,Spring MVC 會(huì)將隱含模型的引用傳遞給這些入?yún)ⅰ?/p>
4)在方法體內(nèi),開發(fā)者可以通過(guò)這個(gè)入?yún)?duì)象訪問(wèn)到模型中的所有數(shù)據(jù),也可以向模型中添加新的屬性數(shù)據(jù)
5.3.2 實(shí)驗(yàn)代碼
? 1)? 增加控制器方法
? 7)? 類層次結(jié)構(gòu)
? 8)? 推薦:Map, ?便于框架移植。
? 9)? 源碼參考