Struts2學習:配置篇之配置文件

從一個struts開發者的角度來看,框架唯一必須的配置文件是web.xml,如上篇所說的0配置,它就只需要web.xml文件。通過web.xml文件,我們可以完全控制struts來配置它自身以及我們的應用程序。默認情況下,struts會裝載一系列的內部配置文件來配置它自己,然後裝載另外一系列的文件來配置應用程序,儘管只要一個web.xml文件就可以了,但是我們在開發一個完整的struts應用時通常並不會只使用一個web.xml配置文件,而是使用多個配置文件。下表列出了能夠用於爲我們的應用程序配置框架的的文件,有些配置文件是能夠動態重新裝載的。動態重載能夠使我們的開發更具交互性,那麼如何才能做到動態重載呢?   

Struts允許我們可以動態的重新裝載xml配置文件,也就是說在我們的開發過程中,我們可以重新配置action mapping,這個會對性能產生一點影響,因此這種做法不是很推薦。爲了使用動態重載,我們需要在struts.properties文件加入如下一行代碼:

struts.configuration.xml.reload=false

1struts配置文件一覽表

文件名

是否可選

文件位置

作用

web.xml

no

/WEB-INF/

Web部署描述符,包含了所有必須的框架組件

struts.xml

yes

/WEB-INF/classes

主要配置文件,包含了攔截器,action-mappings等等

struts.properties

yes

/WEB-INF/classes

框架的運行時屬性

struts-default.xml

yes

/WEB-INF/lib/struts2-core.jar

struts提供的默認配置文件

struts-default.vm

yes

/WEB-INF/classes

velocity.properties參考的默認宏

struts-plugin.xml

yes

plug-in jar文件的根目錄

可選的插件配置文件,格式同struts.xml

velocity.properties

yes

/WEB-INF/classes

覆蓋默認的velocity配置

下面我們來詳細看下錶中的各個配置文件,因爲在項目開發中只用到了前面四種配置文件,所以對後面3種就不作介紹了。

1web.xml文件

對於開發JSP程序的人來說,這個文件再熟悉不過了,它通常被稱爲部署描述符,它代表了整個Java web應用程序的核心,很自然的它也是struts的核心部分之一。在web.xml文件中Struts定義了它的FilterDispatcher,這個Servlet過濾器負責初始化整個Struts框架請且處理所有的請求。這個過濾器可以包括一些初始化參數,有的參數指定了要加載哪些額外的xml配置文件,還有的會影響struts框架的行爲。之前我們說配置一個Struts2環境的時候就講了,配置一個Struts2的環境只需在web.xml文件中加上如下一段話即可:

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

這就是Struts所定義的FilterDispatcher

    除了FilterDispatcher外,Struts還提供了一個ActionContexCleanUp類,這個類 有什麼作用呢?它的主要任務是當有其它一些過濾器要訪問一個初始化好了的struts框架的時候,負責處理一些特殊的清除任務。

處理這個FilterDispatcher外,web.xml文件和我們以前所用的web.xml文件貌似就沒什麼區別了,實際上關於FilterDispatcher還有很多可以說的,以後再單獨說咯。

2struts.xml文件

框架的核心配置文件就是這個默認的struts.xml文件,在這個默認的配置文件裏面我們可以根據需要再包括其它一些配置文件。在通常的應用開發中,我們可能想爲每個不同的模塊單獨配置一個struts.xml文件,這樣也利於管理和維護。比如說我有一個模塊叫做order,那麼我這個模塊所有的action相關信息配置在struts-order.xml中,還有一個模塊叫member,那麼我會把它的素有action相關信息配置在struts-member.xml中,那麼我怎麼告訴系統去裝載這些文件呢?如下所示:

使用include標籤就可以引入其它的struts配置文件了,配置文件將按照它們在struts.xml中出現的順序被裝載。

3struts.properties

Struts框架使用了很多屬性,我們可以通過改變這些屬性來滿足我們的需求。要改變這些屬性,只需在struts.properties文件中指定屬性的keyvalue即可。屬性文件可以放在任何一個包含在classpath中的路徑上,但是通常我們都把它放在/WEB-INF/classes目錄下面。我們可以在struts-default.properties文件中找到一個屬性的列表。文檔上說可以在struts2.jar中找到這個屬性文件,可是我一直沒找到,:(。它裏面都是一些struts的默認屬性,我們可以在struts.properties中覆蓋這些默認的屬性值。

4struts-default.xml

    struts-default.xml是一個基礎配置文件,我們可以在struts2.jar中找到這個文件。struts-default.xml會自動包含(included)struts.xml文件中,併爲我們提供了一些標準的配置。鑑於struts-default.xml文件比較長,這裏我就不把它的內容貼出來了,大家可以到struts2.jar中去找。

    剩下的3個配置文件中struts-plugin.xmlstruts.xml文件格式是差不多的,其它兩個因爲項目中沒怎麼用,所以這裏就不寫了。

 
發佈了113 篇原創文章 · 獲贊 6 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章