webwork配置文件主要有两个:web.xml和xwork.xml

1.webwork.xml:

(1)在webwork2.2之前,一个ServletDispatcher 被用来处理action请求。相关的配置文件如下:

<servlet>

<servlet-name>webwork</servlet-name>

<servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>webwork</servlet-name>

<url-pattern>*.action</url-pattern>

</servlet-mapping>

<!--如果使用jsp的话配置标签库 -->

<taglib>

<taglib-uri>webwork</taglib-uri>

<taglib-location>/WEB-INF/lib/webwork-2.2.6.jar</taglib-location>

</taglib>

<load-on-startup>1</load-on-startup>这个配置是什么含义呢?经过查找它的含义为:容器启动时加载这个servlet的顺序,正常的取值范围是:负数,0-5,如果是负数或者没有这个标签,则容器在启动时不自动加载这个servlet,如果是0-5,则按照顺序加载这个servlet,执行初始化方法init()。数字是0-5,加载顺序也是0-5。

(2)webwork2.2之后可以添加一个单独的过滤器进行配置示例代码如下:

<filter>

<filter-name>webwork</filter-name>

<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>webwork</filter-name>

<filter-url>/*</filter-url>

</filter-mapping>

<listener>

<istener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

<listener>

2.xwork.xml

(1)package的配置,package有属性:name(必填)、extends、namespace和abstract

例如:

<package name="webnewslist" extends="flxx-default" namespace="/web/news">

<action name="list" class="com.founder.sort.view.action.News" method="list">

<result name="success" type="dispatcher">/news/list.jsp</result>

<result name="error" type="dispatcher">/error.jsp</result>

</action></package>

其中name要是不填写的话就默认为:" "

对于一个请求例如:/user/my.action

程序首先就去搜索/user命名空间下查找名称为my的action,如果没有就会到命名空间为" "的包中找到my的action

如果请求为:/my.action则程序会去"/"命名空间下查找名称为my的action,如果没有就会到命名空间为""的包中找到my的action

(2) 包含的配置:

对于大型的项目如果使用一个xwork.xml配置文件则会造成xwork.xml文件过于庞大,所以webwork允许xwork.xml中再包含其它的xwork.xml配置文件:

<work>

<include file="user.xml"/>

</work>

(3)action的配置:

<action name="show" class="com.founder.sort.view.action.News" method="show">

其中method属性是可选的,它表明的是执行News类中的哪一个方法,如果没有填写该属性,默认执行类中execute()方法,如果execute()方法没有则会报错。

如果class属性没有填写,会默认使用com.opensymphony.xwork.ActionSupport类

当一个指定的action找不到时就会执行默认的action,主要用于一些比较相似的而且简单的action的需求,配置如下

<default-action-ref name="show"/>

(4)结果的配置:

<result name="success" type="dispatcher">

<param name="location">/error.jsp</param>

</result>

name属性默认为success 、type属性默认为dispatcher、参数名称也是默认为location所以最终可以简写成:

<result>/error.jsp</result>

(5)拦截器配置

<interceptors>

<interceptor name="securityAdminInterceptor" class="com.founder.sort.uum.SecurityAdminInterceptor" />

<interceptor name="securityUserInterceptor" class="com.founder.sort.uum.SecurityUserInterceptor" />

<interceptor-stack name="securityStack">

<interceptor-ref name="defaultStack" />

<interceptor-ref name="securityAdminInterceptor" />

</interceptor-stack>

<interceptor-stack name="securityUserStack">

<interceptor-ref name="defaultStack" />

<interceptor-ref name="securityUserInterceptor" />

</interceptor-stack>

</interceptors>

(6)前台界面添加:<%@ taglib uri="webwork" prefix="ww"%>就可以使用webwork的标签了。