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

基於 RSA 7 與 WAS 6.1 的 Struts 2.1.6 Web 應用開發全流程

     編輯:Java 相關知識

Struts 2 以 WebWork 為核心,提供更強大的 MVC 框架。本文演示在 IBM Rational Software Architect 7 (RSA) 與 WebSphere Application Server 6.1 (WAS) 平台上,從環境搭建到功能實現的完整開發流程。

一、 開發平台搭建

1. 創建動態 Web 項目

  • RSA 中配置 WAS 6.1 運行時環境。
  • 項目設置:目標運行時選 WAS 6.1,動態 Web 模塊版本 2.5。

2. 配置 Struts 2 類庫

下載 struts-2.1.6-lib.zip,拷貝核心 Jar 至 WEB-INF/lib。示例僅含基礎包,複雜功能需補充相應 Jar。

3. 配置 web.xml 核心過濾器

Struts 2.1.6 使用 StrutsPrepareAndExecuteFilter:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

早期版本 (2.1.3-) 用 FilterDispatcher。Taglib 已內置於 struts-core.jar,無需額外配置。

4. WAS 容器關鍵屬性

必須設置 com.ibm.ws.webcontainer.invokefilterscompatibility=true,否則 Action 不生效。通過 WAS 管理控制台配置。

二、 示例功能開發:用戶管理 CRUD

兩頁面:userList.jsp 列表、user.jsp 新增/編輯。提交驗證通過返回列表,失敗回顯錯誤。

1. 基類 Action 注入 Web 資源

public class BaseAction extends ActionSupport
    implements SessionAware, ServletRequestAware, ServletResponseAware {
    // 提供 sessionMap、request、response 獲取器,子類直接可用
}

2. 業務 Action 多方法映射

單一 UserAction 含 execute()、createOrEditUser()、submitUser()、deleteUser() 對應不同表單。

3. struts.xml 與模塊化配置

主配置引用 struts-user.xml,命名空間 /admin。chain 結果類型實現 Action 鏈調用(如提交成功鏈向 showUserList)。

<action name="submitUser" class="sample.action.UserAction" method="submitUser">
  <result name="input">/WEB-INF/page/user.jsp</result>
  <result name="userList" type="chain">showUserList</result>
</action>

4. 頁面標簽與主題定制

struts.properties 設置 struts.ui.theme=simple 禁用默認表格佈局,完全掌控 HTML。表單字段 name="user.userName" 自動映射到 Action 的 user 屬性(需空構造器 + Getter/Setter)。

5. 兩級驗證機制

  • 聲明式:UserAction-submitUser-validation.xml,針對 user.userName 做必填、長度驗證;user.email 做格式驗證。錯誤鍵支援國際化。
  • 編程式:validateSubmitUser() 方法自動攔截,邏輯如密碼長度 < 6 則 addFieldError。

6. 國際化與異常處理

  • struts.custom.i18n.resources 指定資源文件,Action 用 getText(),JSP 用 %{getText('key')} 或 <s2:text>。
  • 全局異常映射到 error.jsp,頁面用 <s2:property value="%{exception.message}" /> 顯示詳情。亦支持 Action 級單獨配置。

總結

掌握 Struts 2 需深入標簽庫、OGNL 表達式、攔截器機制、IOC 容器等進階特性。本示例源碼附後,供進一步研究。

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