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

JBuilder 2005 Struts 實戰進階:以 Action 控制器替換 switch.jsp 重構登錄模塊

     編輯:Java 相關知識

在早期的《JBuilder 2005 Servlet 高級開發》專題中,登錄模塊使用 switch.jsp 作為業務處理與頁面轉發的「中央處理器」:接收表單數據、查詢數據庫、決定跳轉目標。這違背了 JSP「專注展現邏輯」的設計初衷,導致業務邏輯與視圖耦合、分層不清、維護困難。本文展示如何引入 Struts 框架,將 switch.jsp 的職責拆解至 ActionForm、Action 與 ActionForward,實現清晰的 MVC 分層。

問題回顧:switch.jsp 的「大雜燴」弊端

  • 單一 JSP 承擔數據接收、業務驗證、數據庫查詢、頁面轉發多重職責
  • 違反單一職責原則,邏輯混雜,難以單元測試
  • 頁面跳轉硬編碼,擴展性差

Struts 重構方案:職責拆解

switch.jsp 職責Struts 組件說明
接收 login.jsp 表單數據ActionForm 機制自動填充表單數據到 JavaBean,支援驗證與重置
查詢 T_USER 表、判斷合法用戶Action.execute()業務邏輯集中於 Action,可調用 Service/DAO 層
驗證失敗→fail.jsp、異常→error.jsp、成功→welcome.jspActionForward 多出口切換在 struts-config.xml 聲明前向,Action 僅返回邏輯名稱

新增圖書管理模塊:完整 Struts 流程演示

為展示 Struts 完整開發流程,新增「圖書新增」功能,僅實現添加操作。數據庫表 T_BOOK 結構如下:

圖 4 T_BOOK 表結構

使用 JBuilder 2005 內置的 Struts Config Editor 可視化設計器,圖 5 展示新增圖書的 Struts 流程:

圖 5 新增圖書 Struts 流程

核心組件

  • bookAdd.jsp:圖書錄入界面,使用 Struts 標籤庫與資源文件實現國際化
  • BookActionForm:封裝表單數據,實現 validate() 自動校驗(如 BOOK_ID 唯一性)
  • /bookInsertAction (BookInsertAction):業務控制器,持久化數據並轉向成功頁

環境準備

  1. 創建 bookStore 專案與 webModule Web 模塊,覆蓋原 Servlet 專題代碼
  2. 執行 SQL 創建 T_BOOK 表(見代碼清單 5)
  3. 將必要類庫加入專案
-- 代碼清單 5 創建 T_BOOK 表
create table T_BOOK (
  BOOK_ID VARCHAR2(10) not null,
  ISBN VARCHAR2(20) not null,
  BOOK_NAME VARCHAR2(50) not null,
  AUTHOR VARCHAR2(50),
  CREATE_DATE CHAR(8),
  constraint PK_T_BOOK primary key (BOOK_ID)
);

主鍵 BOOK_ID 唯一、ISBN 與 BOOK_NAME 非空,直接決定了表單校驗規則。

下一步預告

後續文章將詳細講解:

  • 為圖書模塊創建獨立 Struts 配置文件(book-struts-config.xml),避免團隊協作衝突
  • 構建 BookActionForm 含數據庫級校驗的 validate() 實現
  • 使用 Struts HTML/BEAN 標籤庫構建 bookAdd.jsp 及資源文件國際化
  • 實現 BookInsertAction 並配置全局異常處理(SQLException → sqlFail.htm)

通過本系列,您將掌握在 JBuilder 2005 中利用 Struts 可視化工具進行標準化、分層、可維護的 Web 應用開發全流程。

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