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)? 源碼參考