首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring 系列第 3 彈:Spring MVC 輕鬆上手 — 從配置到部署的銀行帳戶查詢實戰

     編輯:Java 相關知識

前言:可插拔 MVC 架構,視圖技術自由選

Spring MVC 模組功能全面,策略介面高度可配,支援 JSP、Velocity、Tiles、iText、POI 等視圖技術。核心 DispatcherServlet 分派請求,帶可配置的處理器映射、視圖解析、國際化、主題、檔案上傳。控制器介面單一方法 handleRequest,提供層次結構:表單處理繼承 AbstractFormController,多頁精靈繼承 AbstractWizardFormController。本文以銀行帳戶查詢應用實戰講解。

Web.xml 三大配置塊

  1. DispatcherServlet:sampleBankingServlet,load-on-startup=1,自動載入 sampleBankingServlet-servlet.xml
  2. URL 映射:*.jsp 交由該 Servlet 處理
  3. ContextLoaderServlet (兼容 Servlet 2.2+):啟動時載入 /WEB-INF/sampleBanking-services.xml (服務層 Bean 定義)

核心控制器:LoginBankController

繼承 SimpleFormController (支援 GET 顯示表單、POST 處理提交)。注入 AuthenticationService、AccountServices:

protected ModelAndView onSubmit(Object command) throws Exception {
  LoginCommand login = (LoginCommand) command;
  authenticationService.authenticate(login);
  AccountDetail detail = accountServices.getAccountSummary(login.getUserId());
  return new ModelAndView(getSuccessView(), "accountdetail", detail);
}

Spring 配置串聯視圖與服務

<bean id="loginBankController" class="springexample.controller.LoginBankController">
  <property name="sessionForm"><value>true</value></property>
  <property name="commandName"><value>loginCommand</value></property>
  <property name="commandClass"><value>springexample.commands.LoginCommand</value></property>
  <property name="authenticationService"><ref bean="authenticationService"/></property>
  <property name="accountServices"><ref bean="accountServices"/></property>
  <property name="formView"><value>login</value></property>       <!-- GET 顯示 -->
  <property name="successView"><value>accountdetail</value></property>  <!-- POST 成功 -->
</bean>

commandName/class 決定視圖頁面綁定的命令物件 (如 login.jsp 存取 loginCommand),提交後 onSubmit 從命令物件取得表單數據。

視圖解析器:邏輯名稱映射實體 JSP

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
  <property name="prefix"><value>/jsp/</value></property>
  <property name="suffix"><value>.jsp</value></property>
</bean>

login → /jsp/login.jsp,accountdetail → /jsp/accountdetail.jsp,使用 JSTL 標籤故 viewClass=JstlView。

服務層 Bean 定義

<beans>
  <bean id="accountServices" class="springexample.services.AccountServices"/>
  <bean id="authenticationService" class="springexample.services.AuthenticationService"/>
</beans>

置於 sampleBanking-services.xml,由 ContextLoaderServlet 載入。

部署與測試:Tomcat 5.0.28

  1. 安裝 Tomcat,源碼 spring-banking 資料夾複製到 webapps
  2. catalina.bat start 啟動
  3. 瀏覽器訪問 https://localhost:port/springbanking,見登入頁 (圖 1)
  4. 輸入 admin/password 登入,見帳戶詳情頁 (圖 2)

圖 1:Spring MVC 示例登入畫面

圖 2:Spring MVC 示例帳戶詳情頁

結語

本文示範 Spring MVC 核心流程:DispatcherServlet 配置 → 控制器繼承 SimpleFormController + 依賴注入服務 → formView/successView 邏輯視圖名 → InternalResourceViewResolver 映射 JSP → 服務層 Bean 定義 → Tomcat 部署測試。掌握此範本,即可快速構建 Spring MVC 應用。

文章來源:IBM developerWorks

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved