Struts2 web.xml配置

Struts2 web.xml配置

1. 核心控制器及參數配置

任何MVC框架都需要與Web應用整合,就不得不依賴於web.xml文件,只有配置在web.xml文件中的Servlet、Filter纔會被應用加載。

所有MVC框架都需要Web應用加載一個核心控制器,對於Struts2框架而言,其需要加載FilterDispatcher,只要Web應用負責加載FilterDispatcher,FilterDispatcher將會加載應用的Struts2框架。

FilterDispatcher實質是一個過濾器,它負責初始化整個Struts框架並且處理所有的請求。這個過濾器可以包括一些初始化參數,有的參數指定了要加載哪些額外的xml配置文件,還有的會影響Struts2框架的行爲。除了FilterDispatcher外,Struts2還提供了一個ActionContexCleanUp過濾器,它的主要任務是當有其它一些過濾器要訪問一個初始化好了的Struts2框架的時候,負責處理一些特殊的清除任務。ActionContexCleanUp過濾器主要配合其他插件過濾器使用。詳細配置,如下圖所示:

clip_image002

clip_image004

其中有3個初始化參數有特殊意義:

config:該參數的值是一個以英文逗號(,)隔開的字符串,每個字符串都是一個XML配置文件的位置。Struts 2框架將自動加載該屬性指定的系列配置文件。

actionPackages:該參數的值也是一個以英文逗號(,)隔開的字符串,每個字符串都是一個包空間,Struts 2框架將掃描這些包空間下的Action類。

configProviders:如果用戶需要實現自己的ConfigurationProvider類,用戶可以提供一個或多個實現了ConfigurationProvider接口的類,然後將這些類的類名設置成該屬性的值,多個類名之間以英文逗號(,)隔開。

除此之外,還可在此處配置Struts 2常量,每個<init-param>元素配置一個Struts2常量,其中<param-name>子元素指定了常量name,而<param-value>子元素指定了常量value。

至於filter-mapping屬性是過濾器(Filter)必須的一個屬性,用於過濾請求的路徑,此處一般就設爲/*形式,對所有請求uri進行攔截(過濾),除非你要做一些特殊的處理。

2. 標籤庫配置

如果web容器是J2EE1.3(servlet2.3)及以前的規範,由於不會自動加載struts的標籤庫,所以需要在web.xml文件中手動加載struts的標籤庫,將struts-tags.tld文件,一般複製放在WEB-INF下面,可以自己指定,在web.xml中配置的加載標籤定義文件如下:

clip_image006

但如果web容器是J2EE1.4(servlet2.4),那麼web容器會自動加載標籤庫,Struts 2的標籤庫定義文件包含在struts2-core-2.1.6.jar文件裏,在struts2-core-2.1.6.jar文件的META-INF路徑下,包含了一個struts-tag.tld文件, 這個文件就是Struts 2的標籤庫定義文件,Servlet 2.4規範會自動加載該標籤庫文件,避免了在web.xml文件中重新定義Struts2標籤庫文件的URI。其中struts-tags.tld文件裏包含了加載信息的片斷,如下:

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章