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

Struts 2 核心配置詳解:struts.xml 全解析

     編輯:Java 相關知識

定位與作用

struts.xml 是 Struts 2 應用的主要業務配置文件,承載 Action 映射、攔截器棧、結果類型、視圖解析等核心配置。文件必須置於 src/ 根目錄,編譯後進入 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="ch01" extends="struts-default">
        <action name="Hello" class="com.kingbegin.web.HelloAction">
            <result>/HelloWorld.jsp</result>
        </action>
        <!-- 更多 action 配置 -->
    </package>
</struts>

核心元素深度解析

<struts> 根元素

整個配置文件的唯一根節點,包含一個或多個 <package>。

<package>:邏輯分模塊與繼承

<package name="ch01" extends="struts-default">
  • name:包唯一標識,不可重複
  • extends:繼承父包配置(攔截器、結果類型等),struts-default 定義於 struts-default.xml,提供框架基礎設施
  • 包內可定義:result-types、interceptors、action 等

<action>:請求處理入口

<action name="Hello" class="com.kingbegin.web.HelloAction">
  • name:URL 映射名稱。對應請求 /Hello.action(結合 struts.action.extension)
  • class:Action 實現類全限定名,框架將實例化並注入屬性
  • 未指定 class 時默認為 ActionSupport

<result>:視圖結果配置

<result>/HelloWorld.jsp</result>
  • 指定邏輯視圖路徑,默認類型為 dispatcher(轉發到 JSP)
  • 可通過 name 屬性指定結果名稱(默認 success),對應 Action 返回字符串
  • 支援多結果配置:<result name="input">/error.jsp</result>

進階配置技巧

  • 通配符映射:<action name="*User" class="com.example.{1}UserAction"/>
  • 動態方法調用:<action name="User" class="com.example.UserAction" method="{1}"/> 配合 !{method} 語法
  • 命名空間:<package namespace="/admin"> 實現 URL 分層

避坑指南

  • DTD 聲明必須準確,否則啟動報錯
  • Action 類需提供無參構造器,屬性需有 Setter 供框架注入
  • 結果路徑建議以 / 開頭,表示相對 Web 根目錄
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved