內建的 Struts 支援大幅提升了 Oracle JDeveloper 整合開發環境的開發產能。Jakarta Struts 是 Apache Software Foundation 支援的開源專案,提供一個使用標準 J2EE 組件(如 JSP、Servlet 和 JavaBean)建構 Model 2 架構——也就是 MVC(Model-View-Controller)設計模式變體——的應用程式框架。
Struts 專為解決企業應用程式開發專案中常見的問題而設計,針對頁面流程控制、國際化、可維護性與部署彈性等議題提供完整解決方案。
此版本透過以下特性提供全方位的 Struts 開發支援:
除了一般 Struts 應用程式支援外,JDeveloper 還提供針對 Business Components for Java (BC4J) 的額外功能:
理解 JDeveloper Struts 功能的最佳方式是親手建構一個簡單應用程式。本文示範一個簡單的登入表單應用程式。
可從 OTN 下載 Oracle9i JDeveloper 評估版,完整專案檔案請下載 SimpleStrutsApp.zip。
MVC 架構的視圖層包含三個 JSP 頁面:
首先使用 JSP 頁面精靈建立 login.jsp,再進行客製化。登入表單使用 Struts 標籤庫的 HTML 標籤產生,success.jsp 與 failure.jsp 僅包含提示訊息。同時需定義 LoginForm (ActionForm Bean) 代表表單元素,以及 LoginAction 處理登入請求。
SimpleStrutsApp.jws 專案login.jsp<html:form> 標籤加入頁面,Action 屬性設為 /login<html:text> 標籤建立 userid 與 password 輸入欄位,property 分別設為 "userid" 與 "password"<bean:message> 實現國際化動態提示)完成 login.jsp 後,建立 Struts ActionForm Bean 提供 HTML 表單欄位的 Java 表現形式,並實作第一層驗證邏輯(如必填欄位檢查、郵件格式驗證等)。
LoginFormuserid、password 欄位及對應的 getter/setter 方法validate() 方法實作欄位非空驗證,錯誤訊息鍵值(如 error.userid.required)對應 ApplicationResources.properties 中的訊息定義
圖 1:Struts 設定編輯器
Struts Action 類別處理來自 HTML 表單的實際請求邏輯。
LoginAction,路徑設為 /login(對應表單的 action 屬性)execute() 方法,根據表單提交欄位判斷登入成敗為簡化示範,使用簡單的 LoginCheck 類別驗證帳密(實際專案應對接資料庫或安全機制):
package mypackage1;
public class LoginCheck {
boolean checkUseridPassword(String id, String pwd) {
if (id.equals("scott") && pwd.equals("tiger"))
return true;
else
return false;
}
}
Struts 最大優勢在於易於組裝——單一設定檔 struts-config.xml 串聯所有 J2EE Web 應用程式元素。
struts-config.xml,使用 Action 映射將 LoginAction 連結到 LoginForm Beansuccess.jsp,失敗導向 failure.jspLogin.jsp 測試,內建 OC4J 伺服器啟動後可見登入頁面scott/tiger 驗證登入成功本文示範的應用程式雖簡單,但涵蓋 Struts 核心開發技術,且易於擴展至實務專案。Oracle9i JDeveloper 提供的整合工具大幅降低 Struts 開發門檻,提升開發效率與程式碼品質。