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

MyEclipse 開發 Struts2 + Spring2 + iBATIS2 整合指南 (四):Struts2 核心配置解析

     編輯:Java 相關知識

前言

承接前三篇,專案已建立且 Tomcat 能正常啟動。本篇深入剖析 Struts2 運作的兩個核心設定檔:web.xml 與 struts.xml,說明它們如何讓 Struts2 介入請求處理流程。

兩大關鍵配置檔

1. web.xml - 容器層面的入口

web.xml 部署描述檔告訴 Servlet 容器 (Tomcat) 要載入 Struts2 的核心過濾器:

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

關鍵點:

  • FilterDispatcher (Struts 2.0.x) 或 StrutsPrepareAndExecuteFilter (2.1.3+) 是所有請求的總入口
  • url-pattern>/* 攔截所有請求,靜態資源需額外配置排除

2. struts.xml - 框架層面的路由與業務配置

位於 src/ 根目錄,編譯後置於 WEB-INF/classes/。基本結構:

<?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="default" namespace="/" extends="struts-default">
        <action name="login" class="com.example.action.LoginAction">
            <result name="success">/welcome.jsp</result>
            <result name="input">/login.jsp</result>
        </action>
    </package>
</struts>

Struts2 啟動流程圖解

  1. Tomcat 讀取 web.xml,實例化 FilterDispatcher
  2. 首次請求到達,Filter 初始化 StrutsPrepareAndExecuteFilter
  3. 載入 struts.xml 及所有 struts-plugin.xml,建立 Configuration 物件
  4. 依 namespace + action name 找到對應 ActionMapping
  5. 執行攔截器鏈 → 執行 Action → 依 result 導向視圖

常見配置錯誤與除錯

現象可能原因解決方式
404 無法找到 Actionnamespace/action name 拼寫錯誤、struts.xml 未置於 classpath檢查編譯輸出目錄、確認 DTD 版本對應
Filter 初始化失敗缺少 struts2-core.jar、版本衝突檢查 WEB-INF/lib、Maven 依賴樹
結果頁面空白result 路徑錯誤、未配置對應的 result type使用絕對路徑 /xxx.jsp、檢查 struts-default.xml 繼承

下一步

下一篇將介紹如何整合 Spring 2.5 管理 Action Bean,以及導入 iBATIS 2 進行資料存取層開發。

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