熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

教你如何配置Struts2 web.xml文件

2013-11-23 20:37:28  來源: Java開源技術 

  Struts 的基本配置

  前面大致了解了Struts 框架的基本內容但這些基本內容都必須建立在Struts 的配置文件基礎之上這些配置文件的配置信息也是Struts 應用的核心部分

  配置Struts webxml文件

  任何MVC框架都需要與Web應用整合這就不得不借助於Struts webxml文件只有配置在Struts webxml文件中Servlet才會被應用加載

  通常所有的MVC框架都需要Web應用加載一個核心控制器對於Struts 框架而言需要加載FilterDispatcher只要Web應用負責加載FilterDispatcherFilterDispatcher將會加載應用的Struts 框架

  因為Struts 將核心控制器設計成Filter而不是一個普通Servlet故為了讓Web應用加載FilterDispacher只需要在Struts webxml文件中配置FilterDispatcher即可

  配置FilterDispatcher的代碼片段如下



  

  < ! 配置Struts 核心Filter的名字 >struts< /FILTERNAME>

< FILTERCLASS>orgapachestrutsdispatcherFilterDispatcher < /FILTERCLASS>
< INITPARAM>
< ! 配置Struts 框架默認加載的Action包結構 >
< PARAMNAME>actionPackages< /PARAMNAME>
< PARAMVALUE>orgapachestrutsshowcaseperson< /PARAMVALUE>
< /INITPARAM>
< ! 配置Struts 框架的配置提供者類 >
< INITPARAM>
< PARAMNAME>configProviders < /PARAMNAME>
< PARAMVALUE>leeMyConfigurationProvider< /PARAMVALUE>
< /INITPARAM>
< /FILTER>   

  正如上面看到的當配置Struts 的FilterDispatcher類時可以指定一系列的初始化參數為該Filter配置初始化參數時其中有個初始化參數有特殊意義

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

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

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

  除此之外還可在此處配置Struts 常量每個元素配置一個Struts 常量其中

  子元素指定了常量name

  子元素指定了常量value

  提示   關於Struts 常量的講解請參閱本書的

  在Struts webxml文件中配置了該Filter還需要配置該Filter攔截的URL通常我們讓該Filter攔截所有的用戶請求因此使用通配符來配置該Filter攔截的URL

  下面是配置該Filter攔截URL的配置片段

  

  < ! 配置Filter攔截的URL >
< FILTERMAPPING>
< ! 配置Struts 的核心FilterDispatcher攔截所有用戶請求 >
< FILTERNAME>struts< /FILTERNAME>
/*< /URLPATTERN>
< /FILTERMAPPING>

  配置了Struts 的核心FilterDispatcher後基本完成了Struts 在webxml文件中的配置

  如果Web應用使用了Servlet 以前的規范因為Web應用不會自動加載Struts 框架的標簽文件因此必須在Struts webxml文件中配置加載Struts 標簽庫

  配置加載Struts 標簽庫的配置片段如下

  

  < ! 配置Struts 標簽庫的URI >/s< /TAGLIBURI>
< ! 指定Struts 標簽庫定義文件的位置 >
< TAGLIBLOCATION>/WEBINF/strutstagstld< /TAGLIBLOCATION>
< /TAGLIB> 

  在上面配置片段中指定了Struts 標簽庫配置文件物理位置/WEBINF/struts tagstld因此我們必須手動復制Struts 的標簽庫定義文件將該文件放置在Web應用的WEBINF路徑下

  如果Web應用使用Servlet 以上的規范則無需在Struts webxml文件中配置標簽庫定義因為Servlet 規范會自動加載標簽庫定義文件

  提示   Struts 的標簽庫定義文件包含在strutscorejar文件裡在strutscorejar文件的METAINF路徑下包含了一個strutstagtld文件這個文件就是Struts 的標簽庫定義文件Servlet 規范會自動加載該標簽庫文件
對於Servlet 以上的規范Web應用自動加載該標簽庫定義文件加載strutstagtld標簽庫定義文件時該文件的開始部分包含如下代碼片段

  

  < TAGLIB>
< ! 定義標簽庫的版本 >
< TLIBVERSION>< /TLIBVERSION>
< ! 定義標簽庫所需的JSP版 >
< JSPVERSION>< /JSPVERSION>
< SHORTNAME>s< /SHORTNAME>

/strutstags< /URI>

< /TAGLIB>

  因為該文件中已經定義了該標簽庫的URIstrutstags這就避免了在Struts webxml文件中重新定義Struts 標簽庫文件的URI


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28777.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.