struts.xml配置

struts.xml 是 Struts2 框架的核心配置文件,該文件主要用於配置 Action 和請求的對應關係,以及配置邏輯視圖和物理視圖(邏輯視圖就是在 struts.xml 文件中配置的 <result> 元素,它的 name 屬性值就是邏輯視圖名;物理視圖是指 <result> 元素中配置的結果頁面,如 JSP 文件)資源的對應關係。web

存放路徑:struts.xml 文件一般放在 Web 應用的 WEB-INF/classes 目錄下,在該目錄下的 struts.xml 文件能夠被 Struts2 框架自動加載。因爲 MyEclipse 開發工具在編譯時會自動將 src 路徑下的 struts.xml 文件編譯後放到 WEB-INF/classes 路徑下,因此直接將其放到項目的 src 路徑下便可。apache

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <!--<constant>元素用常量的配置-->
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <!--<package>元素用於包配置-->
    <package name="default" namespace="/" extends="struts-default">
        <!--配置Action-->
        <action name="index" class="Xxx"/>
            <!--配置Result-->
            <result type="dispatcher">
                <param name="location">/index.jsp</param>
            </result>
        </action>
    </package>
    <!-- <include>元素用於包含配置 -->
    <include file="example.xml"/>
</struts>

● <struts> 元素:是文件的根元素,全部其餘元素都放在 <struts></struts> 中。框架

● <constant> 元素:用於進行常量配置。jsp

● <package> 元素:用於進行包配置,在 Struts2 框架中,包用於組織 Action 和攔截器等信息,每一個包都是由零個或多個攔截器以及 Action 所組成的集合。工具

● <include> 元素:用於在一個 struts.xml 配置文件中包含其餘的配置文件。post

常量配置

在使用 Struts2 框架開發的項目中,一般須要使用大量的常量,這些常量大多在默認的配置文件中已經配置好,但因爲用戶的需求不一樣,開發的要求也有所不一樣,這時可能就須要對這些常量值進行修改,其修改的方法就是在配置文件中對常量進行從新配置。開發工具

一般使用的三種方式:編碼

  • 在 struts.xml 文件中使用 <constant> 元素配置常量(經常使用方式)。
  • 在 struts.properties 文件中配置常量。
  • 在 web.xml 文件中經過 <init-param> 元素配置常量。

在 struts.xml 文件中經過 <constant.../> 元素配置常量時,須要指定兩個必填的屬性 name 和 value。其中 name 屬性用於指定常量的常量名,value 屬性用於指定常量的常量值。spa

<!-- 配置了常量 struts.i18n.encoding 和 struts.devMode。
   其中 struts.i18n.encoding 用於指定 Struts2 應用程序的默認編碼集爲 UTF-8,struts.devMode 用於指定項目使用的是開發模式。
--> <struts> <!--設置默認編碼集爲UTF-8--> <constant name="struts.il8n.encoding" value="UTF-8" /> <!--設置使用開發模式--> <constant name="struts.devMode" value="true" /> </struts>

Struts2 所支持的常量數量不少,在 struts2-core-2.3.37.jar 壓縮文件的 org/apache/struts2 路徑下有一個 default.properties 文件,該文件裏爲 Struts2 的全部常量都指定了默認值。插件

除了能夠經過上述的三種方式配置常量之外,在 Struts2 內置的一些配置文件中也有對常量的配置。

所以,若是在多個文件中配置了同一個 Struts2 常量,則 Struts2 框架加載常量是有必定順序的,一般的搜索順序以下。

1)default.properties:該文件保存在 struts2-core-2.3.37.jar 中的 org.apache.struts2 包中。 2)struts-default.xml:該文件保存在 struts2-core-2.3.37.jar 文件中。 3)struts-plugin.xml:該文件保存在 struts-Xxx-2.3.37.jar 等 Struts2 插件 JAR 包中。 4)struts.xml:該文件是 Web 應用自身的 Struts2 配置文件。 5)struts.properties:該文件是 Web 應用默認的 Struts2 配置文件。 6)web.xml:該文件是 Web 應用的配置文件。

上面指定了 Struts2 框架搜索 Struts2 常量的順序,須要注意的是,若是在多個文件中配置了同一個 Struts2 常量,則後一個文件中配置的常量值會覆蓋前面文件中配置的常量值。

包配置

在 Struts2 框架中,包用於管理 Action 和攔截器,每一個包就是多個 Action、多個攔截器、多個攔截器引用的集合。

在 struts.xml 文件中,使用 <package> 元素定義包配置,每一個 <package> 元素都定義了一個包配置。

<package name="default" namespace="/" extends="struts-default"> ... </package>

屬性:

  • name:必填屬性,用於指定該包的名稱(該名稱在配置文件中必須是惟一的),此名稱是該包被其餘包引用的 Key。
  • namespace:可選屬性,用於定義該包的命名空間。
  • extends:可選屬性,用於指定該包繼承自其餘包。其屬性值必須是另外一個包的 name 屬性值,但該屬性值一般都設置爲 struts-default,這樣該包中的 Action 就具備了 Struts2 框架默認的攔截器等功能。

包含配置

Struts2 容許將一個配置文件分解成多個配置文件,從而提升配置文件的可讀性,<include> 元素用於在一個 struts.xml 配置文件中包含其餘的配置文件。

Struts2 默認只加載 WEB-INF/classes 下的 struts.xml 文件,一旦經過多個 XML 文件配置 Action,就必須經過 <include> 元素包含其餘配置文件。

在 struts.xml 文件中包含配置:

<struts>
    <!--不指定路徑,默認在src下時的方式-->
    <include file="struts-post.xml"/>
    <include file="struts-user.xml"/>
    <include file="struts-dept.xml"/>
    <!--配置文件在具體包中時的方式-->
    <include file="com/mengma/action/struts-product.xml"/>
</struts>

struts.xml 文件經過 <include> 元素包含了四個配置文件,其中 file 屬性用於指定被包含配置文件的名稱。若是被包含的配置文件在 src 路徑下,則直接指定文件名便可,若是被包含的配置文件在具體的包中,則須要引入被包含文件的包路徑。

須要注意的是,每個被包含的配置文件都是標準的 Struts2 配置文件,一樣包含 DTD 信息、Struts2 配置文件的根元素等信息。因爲 struts.xml 文件包含了其餘的配置文件,因此在 Struts2 框架自動加載 struts.xml 文件時,就會完成全部配置信息的加載。

相關文章
相關標籤/搜索