Struts2學習:配置篇之靜態內容

struts2框架中有一些它所需要的公共的靜態內容,比如說js文件和一些css文件。當框架需要這些靜態內容的時候,FilterDidpatcher會自動提供給我們。那麼FilterDidpatcher是如何知道我們在請求靜態內容的呢?任何請求只要以“/struts/”開頭,那麼FilterDidpatcher就會認爲它是在請求靜態內容。注意這裏所說的請求是指從應用上下文後面開始的部分,比如說請求urlhttp://server/myapp/**/**/**,那麼我們所說的請求就是http://server/myapp後面的內容。在識別出請求是請求靜態資源後FilterDidpatcher如何去匹配尋找靜態資源呢?這裏有兩個關鍵點:

1.確定所要請求的資源路徑。FilterDidpatcher會截取/struts/後面的內容作爲所要請求的資源。比如說現在請求是/struts/xhtml/styles.css,那麼FilterDidpatcher就會把xhtml/styles.css作爲我們所要請求的資源的路徑:xhtml目錄下面的styles.css文件。

2.到哪兒去尋找所請求的靜態內容。默認情況下FilterDidpatcher會隨意的到org.apache.struts2.statictemplate這兩個包中去尋找,注意,這兩個包必須是在應用程序的classpath。實際上大家用winrar打開strts2.jar,就會發現它裏面有這兩個目錄,並且裏面都是框架自帶的一些靜態文件。如果我們還想在別的其它包中尋找靜態內容的話,那就需要在web.xml配置中FilterDidpatcher時,給它添加一個參數”packages”,然後把它的值設置爲一系列以逗號或者空格分隔的包名,如下面所示:

<filter>

       <filter-name>Struts2</filter-name>

       <filter-class>

    org.apache.struts2.dispatcher.FilterDispatcher

</filter-class>

<init-param>

    <param-name>packages</param-name>

    <param-value>com.mangocity.static,hust.cm</param-value>

</init-param>

    </filter>

    <filter-mapping>

       <filter-name>Struts2</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

 

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