WebWork配置文件详解
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的标签了。
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的标签了。