SpringMVC框架 第5章 處理響應數(shù)據(jù)

第5章 處理響應數(shù)據(jù)

5.1 SpringMVC 輸出模型數(shù)據(jù)概述

5.1.1提供了以下幾種途徑輸出模型數(shù)據(jù)

? 1)? ModelAndView: 處理方法返回值類型為 ModelAndView 時, 方法體即可通過該對象添加模型數(shù)據(jù)

? 2)? Map 及 Model: 入?yún)?springframework.ui.Model、

org.springframework.ui.ModelMap 或 java.uti.Map 時,處理方法返回時,Map 中的數(shù)據(jù)會自動添加到模型中。

? 3)? @SessionAttributes: 將模型中的某個屬性暫存到 HttpSession 中,以便多個請求之間可以共享這個屬性

? 4)? @ModelAttribute: 方法入?yún)俗⒃撟⒔夂? 入?yún)⒌膶ο缶蜁诺綌?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)設置視圖:

void setView(View view)

void setViewName(String viewName)

5.2.2 實驗代碼

? 1)? 增加控制器方法? ? 4)? 斷點調(diào)試

5.2.2 源碼解析

5.3 處理模型數(shù)據(jù)之 Map

5.3.1?Map介紹

1)Spring MVC 在內(nèi)部使用了一個 org.springframework.ui.Model 接口存儲模型數(shù)據(jù)

具體使用步驟

2)Spring MVC 在調(diào)用方法前會創(chuàng)建一個隱含的模型對象作為模型數(shù)據(jù)的存儲容器

3)如果方法的入?yún)?Map 或 Model 類型,Spring MVC 會將隱含模型的引用傳遞給這些入?yún)ⅰ?/p>

4)在方法體內(nèi),開發(fā)者可以通過這個入?yún)ο笤L問到模型中的所有數(shù)據(jù),也可以向模型中添加新的屬性數(shù)據(jù)

5.3.2 實驗代碼

? 1)? 增加控制器方法

? 7)? 類層次結(jié)構(gòu)

? 8)? 推薦:Map, ?便于框架移植。

? 9)? 源碼參考