您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何配置Struts2 web.xml文件”,在日常操作中,相信很多人在如何配置Struts2 web.xml文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何配置Struts2 web.xml文件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Struts 2的基本配置
前面大致了解了Struts 2框架的基本內容,但這些基本內容都必須建立在Struts 2的配置文件基礎之上,這些配置文件的配置信息也是Struts 2應用的核心部分。
配置Struts2 web.xml文件
任何MVC框架都需要與Web應用整合,這就不得不借助于Struts2 web.xml文件,只有配置在Struts2 web.xml文件中Servlet才會被應用加載。
通常,所有的MVC框架都需要Web應用加載一個核心控制器,對于Struts 2框架而言,需要加載FilterDispatcher,只要Web應用負責加載FilterDispatcher,FilterDispatcher將會加載應用的Struts 2框架。
因為Struts 2將核心控制器設計成Filter,而不是一個普通Servlet。故為了讓Web應用加載FilterDispacher,只需要在Struts2 web.xml文件中配置FilterDispatcher即可。
配置FilterDispatcher的代碼片段如下:
< !-- 配置Struts 2核心Filter的名字 -->struts< /FILTER-NAME> < FILTER-CLASS>org.apache.struts2.dispatcher.FilterDispatcher < /FILTER-CLASS> < INIT-PARAM> < !-- 配置Struts 2框架默認加載的Action包結構 --> < PARAM-NAME>actionPackages< /PARAM-NAME> < PARAM-VALUE>org.apache.struts2.showcase.person< /PARAM-VALUE> < /INIT-PARAM> < !-- 配置Struts 2框架的配置提供者類 --> < INIT-PARAM> < PARAM-NAME>configProviders < /PARAM-NAME> < PARAM-VALUE>lee.MyConfigurationProvider< /PARAM-VALUE> < /INIT-PARAM> < /FILTER>
正如上面看到的,當配置Struts 2的FilterDispatcher類時,可以指定一系列的初始化參數,為該Filter配置初始化參數時,其中有3個初始化參數有特殊意義:
config:該參數的值是一個以英文逗號(,)隔開的字符串,每個字符串都是一個XML配置文件的位置。Struts 2框架將自動加載該屬性指定的系列配置文件。
actionPackages:該參數的值也是一個以英文逗號(,)隔開的字符串,每個字符串都是一個包空間,Struts 2框架將掃描這些包空間下的Action類。
configProviders:如果用戶需要實現自己的ConfigurationProvider類,用戶可以提供一個或多個實現了ConfigurationProvider接口的類,然后將這些類的類名設置成該屬性的值,多個類名之間以英文逗號(,)隔開。
除此之外,還可在此處配置Struts 2常量,每個
提示 關于Struts 2常量的講解,請參閱本書的4.1.2節。
在Struts2 web.xml文件中配置了該Filter,還需要配置該Filter攔截的URL。通常,我們讓該Filter攔截所有的用戶請求,因此使用通配符來配置該Filter攔截的URL。
下面是配置該Filter攔截URL的配置片段:
< !-- 配置Filter攔截的URL --> < FILTER-MAPPING> < !-- 配置Struts 2的核心FilterDispatcher攔截所有用戶請求 --> < FILTER-NAME>struts< /FILTER-NAME> |
配置了Struts 2的核心FilterDispatcher后,基本完成了Struts 2在web.xml文件中的配置。
如果Web應用使用了Servlet 2.3以前的規范,因為Web應用不會自動加載Struts 2框架的標簽文件,因此必須在Struts2 web.xml文件中配置加載Struts 2標簽庫。
配置加載Struts 2標簽庫的配置片段如下:
< !-- 配置Struts 2標簽庫的URI -->/s< /TAGLIB-URI> < !-- 指定Struts 2標簽庫定義文件的位置 --> < TAGLIB-LOCATION>/WEB-INF/struts-tags.tld< /TAGLIB-LOCATION> < /TAGLIB> |
在上面配置片段中,指定了Struts 2標簽庫配置文件物理位置:/WEB-INF/struts- tags.tld,因此我們必須手動復制Struts 2的標簽庫定義文件,將該文件放置在Web應用的WEB-INF路徑下。
如果Web應用使用Servlet 2.4以上的規范,則無需在Struts2 web.xml文件中配置標簽庫定義,因為Servlet 2.4規范會自動加載標簽庫定義文件。
提示 Struts 2的標簽庫定義文件包含在struts2-core-2.0.6.jar文件里,在struts2-core-2.0.6.jar文件的META-INF路徑下,包含了一個struts-tag.tld文件,這個文件就是Struts 2的標簽庫定義文件,Servlet 2.4規范會自動加載該標簽庫文件。
對于Servlet 2.4以上的規范,Web應用自動加載該標簽庫定義文件。加載struts-tag.tld標簽庫定義文件時,該文件的開始部分包含如下代碼片段:
< TAGLIB> < !-- 定義標簽庫的版本 --> < TLIB-VERSION>2.2.3< /TLIB-VERSION> < !-- 定義標簽庫所需的JSP版 --> < JSP-VERSION>1.2< /JSP-VERSION> < SHORT-NAME>s< /SHORT-NAME> |
因為該文件中已經定義了該標簽庫的URI:struts-tags,這就避免了在Struts2 web.xml文件中重新定義Struts 2標簽庫文件的URI。
到此,關于“如何配置Struts2 web.xml文件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。