在 SPRing 系列 的第 3 部分中,我介紹 Spring MVC 框架。就像在以前的文章中一樣,我用銀行示例介紹如何建模和構(gòu)建簡(jiǎn)單的應(yīng)用程序。示例應(yīng)用程序包含了已經(jīng)學(xué)過(guò)的一些技術(shù)(例如依靠注入),但是主要演示 Spring MVC 的特性。
在開(kāi)始之前,請(qǐng) 下載這篇文章的源代碼。請(qǐng)參閱 參考資料 訪問(wèn) Spring 框架和 Tomcat 5.0,運(yùn)行示例需要它們。
Spring MVC 框架
Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),可以選擇是使用內(nèi)置的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過(guò)策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術(shù),例如 javaServer Pages(jsp)技術(shù)、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的視圖,所以不會(huì)強(qiáng)迫您只使用 JSP 技術(shù)。Spring MVC 分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧@種分離讓它們更輕易進(jìn)行定制。
Spring 的 Web MVC 框架是圍繞 DispatcherServlet 設(shè)計(jì)的,它把請(qǐng)求分派給處理程序,同時(shí)帶有可配置的處理程序映射、視圖解析、本地語(yǔ)言、主題解析以及上載文件支持。默認(rèn)的處理程序是非常簡(jiǎn)單的 Controller 接口,只有一個(gè)方法 ModelAndView handleRequest(request, response)。Spring 提供了一個(gè)控制器層次結(jié)構(gòu),可以派生子類(lèi)。假如應(yīng)用程序需要處理用戶輸入表單,那么可以繼續(xù) AbstractFormController。假如需要把多頁(yè)輸入處理到一個(gè)表單,那么可以繼續(xù) AbstractWizardFormController。
示例應(yīng)用程序有助于直觀地學(xué)習(xí)這些特性。銀行應(yīng)用程序答應(yīng)用戶檢索他們的帳戶信息。在構(gòu)建銀行應(yīng)用程序的過(guò)程中,可以學(xué)到如何配置 Spring MVC 框架和實(shí)現(xiàn)框架的視圖層,視圖層包括 JSTL 標(biāo)記(用于顯示輸出的數(shù)據(jù))和JavaServer Pages 技術(shù)。
配置 Spring MVC
要開(kāi)始構(gòu)建示例應(yīng)用程序,請(qǐng)配置 Spring MVC 的 DispatcherServlet。請(qǐng)?jiān)?web.xml 文件中注冊(cè)所有配置。清單 1 顯示了如何配置 sampleBankingServlet。
示例銀行應(yīng)用程序答應(yīng)用戶根據(jù)惟一的 ID 和口令查看帳戶信息。雖然 Spring MVC 提供了其他選項(xiàng),但是我將采用 JSP 技術(shù)作為視圖頁(yè)面。這個(gè)簡(jiǎn)單的應(yīng)用程序包含一個(gè)視圖頁(yè)用于用戶輸入(ID 和口令),另一頁(yè)顯示用戶的帳戶信息。
接下來(lái),下載示例代碼 并釋放到驅(qū)動(dòng)器(例如 c:/ )上。創(chuàng)建了 Spring 項(xiàng)目的文件夾之后,打開(kāi)它并把 spring-banking 子文件夾拷貝到 c:/tomvat5.0/webapps。spring-banking 文件夾是一個(gè) Web 檔案,里面包含 Spring MVC 示例應(yīng)用程序。lib 文件夾包含應(yīng)用程序需要的 Spring 框架、與Spring 相關(guān)的 MVC 庫(kù)以及 JSTL 標(biāo)記庫(kù)和 jar 文件。
要啟動(dòng) Tomcat 服務(wù)器,請(qǐng)使用以下命令:
cd bin C:/Tomcat 5.0/bin> catalina.bat start Tomcat 應(yīng)當(dāng)啟動(dòng)并部署 Spring MVC 示例應(yīng)用程序。