Struts2常量的配置

jopen 10年前發布 | 63K 次閱讀 Struts2 Web框架

    struts.xml配置文件最大的作用就是配置Action和請求之間的對應關系,并配置邏輯視圖名和物理視圖資源之間的對應關系。除此之外,struts.xml文件還有一些額外的功能,例如Bean配置、配置常量、導入其他配置文件等。

    Struts2除了可使用struts.xml文件來管理配置之外,還可使用struts.properties晚間來管理常量,該文件定義了struts2框架的大量常量,開發者可以通過改變這些常量來滿足應用的需求。struts.properties文件是一個標準的Properties文件,該文件包含了系列的key-value對,每個key就是一個struts2常量,每個value就是struts2的常量值。

  只要將struts.properties文件放入Web應用的類加載路徑下,Struts2框架就可以加載該文件,通常我們將該文件放在WEB-INF/classes路徑下。在struts2-core-2.2.1.jar壓縮文件的org/apache/struts2路徑下有一個default.properties文件,該文件里為Struts2的所有常量,這些常量都有默認的值,我們可以通過打開這個文件來了解struts2所支持的常量,這里不作介紹。

  Struts2默認會加載類加載路徑下的struts.xml, struts-default.xml, struts-plugin.xml三類文件,其中struts.xml是開發者定義的默認配置文件,struts-default.xml是Struts2框架自帶的配置文件,struts-plugin.xml是Struts2插件的默認配置文件。

  Struts2配置常量公有三種方式:

  • 通過struts.properties文件

  • 通過struts.xml配置文件

  • 通過Web應用的web.xml文件

  Struts2的所有配置文件,包括struts-default.xml、struts-plugin.xml,甚至用于自定義的,只要Struts2加載的配置文件中都可以使用常量配置的方式來配置Struts2常量。如下struts.xml配置片段配置了一個struts常量,該常量可以代替struts.properties文件中Struts2配置屬性。

<struts>
    <!-- 通過constant元素配置Struts2的屬性 -->
    <constant name="struts.custom.i18n.resource" value="mess"/>
</struts>

  除此之外,當我們在web.xml文件中配置StrutsPrepareAndExecuteFilter時也可以配置Struts2常量,此時采用為StrutsPrepareAndExecutorFilter配置初始化參數的方式來配置Struts2常量,如下是代碼片段:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecutFilter</filter-class>   
   <init-param>
    <param-name>struts.custom.i18n.resource</param-name>
    <param-value>mess</param-value>
  </init-param>
</filter>

  上面的配置文件中出題字代碼配置了一個常用屬性:struts.custom.i18n.resources,該屬性指定了應用所需的國際化資源文件的baseName為mess。

  通常推薦在struts.xml文件中定義struts2屬性,而不是在struts.properties文件中定義,之所以保留使用struts.properties文件定義Struts2屬性的方式,主要是為了保持與WebWork的向后兼容性。

  通常,Struts2框架按照如下的順序加載Struts2常量:

  • struts-default.xml:該文件保存在struts2-core-2.1.2.jar文件中

  • struts-plugin.xml:該文件保存在struts2-Xxx-2.1.2.jar等Struts2插件的jar文件中

  • struts.xml:該文件是Web應用默認的Struts2配置文件

  • struts.properties:該文件是Struts2默認的配置文件

  • web.xml:該文件是Web應用的配置文件

  上面定義了Struts2框架搜索常量的順序,如果在多個文件中配置了同一個struts2常量,則后一個文件中配置的常量會覆蓋前面文件中配置的常量值。

  在默認情況下,Struts2只自動加載類加載路徑下的struts.xml, struts-default.xml和struts-plugin.xml三類文件。但隨著應用規模的增大,系統中Action的數量也大量增加,將導致struts.xml配置文件變得非常臃腫。為了避免這個問題,提高struts.xml文件的可讀性,我們可以將struts.xml配置文件分解成多個配置文件,然后在sturts.xml文件中包含其他配置文件即可

  下面的struts.xml文件中就通過include手動導入了一個配置文件:struts-part1.xml文件,這樣,在加載struts.xml文件的時候就會同時加載struts.xml文件中引用到的struts-part1.xml文件。通過這種方式,就可以將Struts2的Action按模塊配置在多個配置文件當中,下面是代碼片段:

<struts>   
    <include file="struts-part1.xml" />
</struts>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!