Struts2的web.xml配置2

转载 2012年03月28日 13:14:07

Struts 2的基本配置

基本的配置可以如下,详细的后面讲解。

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Struts Blank</display-name>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

 

配置web.xml文件

任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。

通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts 2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载应用的Struts 2框架。

因为Struts 2将核心控制器设计成Filter,而不是一个普通Servlet。故为了让Web应用加载FilterDispacher,只需要在web.xml文件中配置FilterDispatcher即可。

配置FilterDispatcher的代码片段如下:
<!-- 配置Struts 2框架的核心Filter -->

      <filter>

           <!-- 配置Struts 2核心Filter的名字 -->

           <filter-name>struts</filter-name>

           <!-- 配置Struts 2核心Filter的实现类 -->

           <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常量,每个<init-param>元素配置一个Struts 2常量,其中<param-name>子元素指定了常量name,而<param-value>子元素指定了常量value。
    web.xml文件中配置了该Filter,还需要配置该Filter拦截的URL。通常,我们让该Filter拦截所有的用户请求,因此使用通配符来配置该Filter拦截的URL。
    下面是配置该Filter拦截URL的配置片段:
    <!-- 配置Filter拦截的URL -->

      <filter-mapping>

           <!-- 配置Struts 2的核心FilterDispatcher拦截所有用户请求 -->

           <filter-name>struts</filter-name>

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

</filter-mapping>

配置了Struts 2的核心FilterDispatcher后,基本完成了Struts 2在web.xml文件中的配置。

如果Web应用使用了Servlet 2.3以前的规范,因为Web应用不会自动加载Struts 2框架的标签文件,因此必须在web.xml文件中配置加载Struts 2标签库。
配置加载Struts 2标签库的配置片段如下:
    <!-- 手动配置Struts 2的标签库 -->

      <taglib>

           <!-- 配置Struts 2标签库的URI -->

           <taglib-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以上的规范,则无需在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>

           <!-- 定义Struts 2标签库的URI -->

           <uri>/struts-tags</uri>

           ...

      </taglib>

因为该文件中已经定义了该标签库的URI:struts-tags,这就避免了在web.xml文件中重新定义Struts 2标签库文件的URI。

structs2的web.xml和struct.xml两个配置文件的配置

structs
  • lxl1994121
  • lxl1994121
  • 2015年04月08日 20:44
  • 5572

Struts在Web.xml中的配置及Struts1和Struts2的区别

struts1 在web.xml中的配置: (1)配置Struts的ActionServlet      元素来声明ActionServlet     元素:用来定义Servlet的名称  ...
  • QMW19910301
  • QMW19910301
  • 2016年10月25日 13:56
  • 762

struts2在web.xml中配置详解

任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于...
  • huanggao88deng
  • huanggao88deng
  • 2014年06月23日 09:23
  • 4550

jfreechart配合struts2简单配置及使用

jfreechart配合struts2简单配置及使用(饼图)
  • zjl16
  • zjl16
  • 2016年01月18日 14:40
  • 190

关于Strut2 2.5新版本配置的被坑日记(已脱坑)

最近有家公司给offer,所以复习ssh框架 我再一次地用struts2构建熟悉HelloWorld项目,心情非常的愉快。这是什么??我就是学ssh框架出来混的啊!!有什么来 接着: 建项目、、...
  • lijinquan2009
  • lijinquan2009
  • 2017年03月11日 22:41
  • 326

J2EE中web.xml配置文件详解

一、web.xml是什么 web.xml学名叫部署描述符文件,是在Servlet规范中定义的,是Web应用的配置文件,是Web应用的基础。 二、web.xml加载流程 总的来说:ServletC...
  • zhangliangzi
  • zhangliangzi
  • 2016年02月11日 15:37
  • 7017

Struts.xml 常用常量配置

  • pengdongneng
  • pengdongneng
  • 2016年03月25日 16:30
  • 731

struts2配置jar包以及struts.xml常用配置

struts2配置需要jar包,配置相关细节,struts.xml常用配置
  • MRW456
  • MRW456
  • 2016年05月16日 15:30
  • 1181

log4j2 配置 基于JAVA 以Web为例

log4j2性能 log4j2、log4j、logback性能比较 log4j2在SrpingMVC中的应用
  • lidachao01
  • lidachao01
  • 2016年04月19日 11:56
  • 3103

Struts2控制器以及struts.xml与web.xml的配置(1)

MVC设计模式 MVC设计模式的宗旨是把一个Web应用的输入、处理和输出流程按照Model、View、和Controller的方式进行分离,这样一个应用就被分成3个层:模型层、视图层、和控制层。...
  • u013288707
  • u013288707
  • 2017年03月15日 15:57
  • 730
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2的web.xml配置2
举报原因:
原因补充:

(最多只允许输入30个字)