这篇文章主要介绍“如何配置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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。