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

JBuilder2005 Struts深度體驗之升級

編輯:JAVA編程入門知識
  用Action控制器替換switch.jsp
  
  在《JBuilder 2005 Servlet高級開發》中我們介紹了用戶登錄模塊的流程,其中switch.jsp充當一個業務處理和頁面轉發的中心處理器。 <!-- frame contents --> <!-- /frame contents --> 由於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