程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JBuilder 2005 Struts深度體驗之升級

JBuilder 2005 Struts深度體驗之升級

編輯:關於JAVA

用Action控制器替換switch.jsp

在《JBuilder 2005 Servlet高級開發》中我們介紹了用戶登錄模塊的流程,其中switch.jsp充當一個業務處理和頁面轉發的中心處理器。由於JSP的設計初衷是實現頁面展現邏輯,而這裡我們居然"倒行逆施",將JSP用作業務處理和頁面轉發,顯然是不恰當的。我們原來的switch.jsp身兼數職:接收login.jsp頁面的表單數據,查詢數據庫,轉發頁面,象一個事無巨細,有僭越之嫌的 "管家"總攬了所有的事情,程序沒有分層,邏輯顯得非常不清晰,象個大雜燴。

其實Servlet本身倒是比較適合開發switch.jsp所完成的功能,但在《JBuilder 2005 Servlet高級開發》專題中,我們並沒有用Servlet斧正之,是因為我們希望在本專題中從更高的角度更完美地替換switch.jsp。

可以通過Struts框架對switch.jsp功能進行分解,switch.jsp通過<jsp:useBean>獲取登錄頁面表單數據可以通過ActionForm機制實現;switch.jsp查詢T_USER數據表,判斷用戶是否是合法用戶可以在Action的execute()中處理;當未通過驗證轉向fail.jsp頁面,如果發生異常轉向error.jsp頁面,當用戶通過驗證後轉向welcome.jsp頁面,可以在Action中通過ActionForward實現多出口切換。

新增一個圖書管理模塊

現實的圖書管理模塊,應該包括對圖書進行增、刪、改、查的功能,由於篇幅所限,我們僅提供圖書新增的功能。數據庫中必須提供一張表用於保存圖書的信息,這張表名為T_BOOK,其結構如圖 4所示:

圖 4 T_BOOK表結構

我們完全用Struts框架實現圖書新增的功能,JBuilder 提供了一個優秀的Struts可視化設計工具(Struts Config Editor),其中Action Designer能夠非常形象地描述出一個業務功能操作流程,我們不妨就通過這個可視化設計器預覽圖書新增業務的程序結構,如圖 5所示:

圖 5 新增圖書Struts流程

·bookAdd.jsp:圖書錄入的界面,在這兒你將學習到Struts標簽和資源文件的知識。

·bookActionForm:由BookActionForm類實現,保存bookAdd.jsp表單提交的數據。在這兒,你將學習到如何創建ActionForm,ActionForm如何對數據有效性進行自檢的知識。

·/bookInsertAction:由BookInsertAction類實現,即業務控制器,負責將bookActionForm中的新增圖書保存到數據庫T_BOOK表中,並導向到insertSuccess.htm頁面。

事前准備

通過File->New Project...創建一個名為bookStore的新工程,並在工程下創建名為webModule的Web模塊,將原《JBuilder 2005 Servlet高級開發》專題的代碼覆蓋該新工程對應的內容。

用SQL Plus運行下面的SQL語句創建T_BOOK表:

代碼清單 5 創建T_BOOK表的SQL語句

1.create table T_BOOK (
2.BOOK_ID VARCHAR2(10) not null,
3.ISBN VARCHAR2(20) not null,
4.BOOK_NAME VARCHAR2(50) not null,
5.AUTHOR VARCHAR2(50),
6.CREATE_DATE CHAR(8),
7.constraint PK_T_BOOK primary key (BOOK_ID)
8.);

從這個SQL中,我們可以看出BOOK_ID是表的主鍵,所以不允許重復,而ISBN和BOOK_NAME兩字段不允許為空。它們決定了在圖書添加時的數據檢驗規則。

同樣的,我們需要將必要的類添加到這個新工程的類庫中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved