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

Struts 2 開發環境搭建完整指南與核心特性解析

     編輯:Java 程式設計入門

Struts 2 核心優勢概覽

Struts 2 基於 WebWork 2 發展而來,屬於標準 MVC 框架。雖然名稱與 Struts 1 相近,但程式碼風格截然不同。Struts 2 的六大核心優勢:

  1. 非侵入式設計:不強制繼承特定類別或實作特定介面,Action 可為普通 POJO,不依賴 Servlet API
  2. 攔截器機制:支援 AOP 程式設計,輕鬆實現權限驗證、日誌記錄、事務管理等橫切關注點
  3. 類型轉換器:內建豐富類型轉換,自動處理請求參數到 Java 物件的轉換,支援自訂轉換邏輯
  4. 多視圖技術支援:原生支援 JSP、FreeMarker、Velocity 等多種表現層技術
  5. 精準驗證框架:可針對特定方法進行輸入驗證,解決 Struts 1 表單驗證的痛點
  6. 靈活國際化:提供全域、套件、Action 三層級資源檔管理

開發環境搭建步驟

1. 核心 JAR 檔準備

最少需包含以下 JAR(以 2.3.8 版為例):

  • struts-core-2.3.8.jar - 核心框架
  • xwork-2.3.8.jar - 底層命令模式實作
  • ognl-2.6.jar - 物件圖導航語言
  • freemarker-2.3.x.jar - UI 標籤模板引擎
  • commons-logging-1.1.x.jar - 日誌門面
  • commons-fileupload-1.2.1.jar - 檔案上傳支援(2.1.6+ 必須)

取得方式:解壓 struts-2.3.8-all.zip,從 lib 目錄複製所需 JAR。

2. 核心配置檔 struts.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "https://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="demo" namespace="/test" extends="struts-default">
        <action name="hello" class="cn.example.HelloAction" method="execute">
            <result name="success">/WEB-INF/page/hello.jsp</result>
        </action>
    </package>
</struts>

放置於 WEB-INF/classes 目錄下。

3. web.xml 整合 Filter

<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>

注意:Struts 2.1.3 後 FilterDispatcher 已棄用,請使用 StrutsPrepareAndExecuteFilter。

4. 快速驗證環境

  1. 解壓 struts2-blank.war 至 Tomcat webapps 目錄
  2. 啟動 Tomcat (bin/startup.bat)
  3. 瀏覽器訪問 https://localhost:8080/struts2-blank
  4. 確認 WEB-INF/lib 包含所有必要 JAR

常見錯誤與解決方案

錯誤現象原因分析解決方法
java.net.BindException: Address already in use: JVM_BindTomcat 重複啟動,前次未正確關閉檢查程序列表,終止殘留 java 進程後重啟
HTTP 404 - /demo/servlet/demo.do請求 URL 不存在對應映射檢查 struts.xml action name、namespace 設定
There is no Action mapped for action name demo找不到對應 Action,命名空間不匹配確認 namespace 設定、URL 路徑正確性
No result defined for action ... and result successAction 回傳結果碼無對應 <result> 設定補全 struts.xml 中對應 result 配置

專案結構參考

MyStruts2App/
├── src/
│   ├── cn/example/action/HelloAction.java
│   └── struts.xml
├── WebContent/
│   ├── WEB-INF/
│   │   ├── web.xml
│   │   ├── lib/ (放入所有 JAR)
│   │   └── classes/struts.xml
│   └── page/hello.jsp
└── lib/ (專案級共用 JAR)

總結

Struts 2 以非侵入式設計、強大攔截器、靈活類型轉換為核心優勢。環境搭建關鍵在於:正確版本 JAR、struts.xml 規範配置、Filter 正確註冊。善用官方 struts2-blank 空白專案可大幅降低初始配置錯誤率。

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