WebWork配置文件詳解
作者:佚名
WebWork配置文件主要有兩個:web.xml和xwork.xml,本文將向您詳細(xì)介紹這兩個文件的配置方法。
webwork配置文件主要有兩個:web.xml和xwork.xml
1.webwork.xml:
(1)在webwork2.2之前,一個ServletDispatcher 被用來處理action請求。相關(guān)的配置文件如下:
<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的話配置標(biāo)簽庫 -->
<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>這個配置是什么含義呢?經(jīng)過查找它的含義為:容器啟動時加載這個servlet的順序,正常的取值范圍是:負(fù)數(shù),0-5,如果是負(fù)數(shù)或者沒有這個標(biāo)簽,則容器在啟動時不自動加載這個servlet,如果是0-5,則按照順序加載這個servlet,執(zhí)行初始化方法init()。數(shù)字是0-5,加載順序也是0-5。
(2)webwork2.2之后可以添加一個單獨(dú)的過濾器進(jìn)行配置示例代碼如下:
<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要是不填寫的話就默認(rèn)為:" "
對于一個請求例如:/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屬性是可選的,它表明的是執(zhí)行News類中的哪一個方法,如果沒有填寫該屬性,默認(rèn)執(zhí)行類中execute()方法,如果execute()方法沒有則會報錯。
如果class屬性沒有填寫,會默認(rèn)使用com.opensymphony.xwork.ActionSupport類
當(dāng)一個指定的action找不到時就會執(zhí)行默認(rèn)的action,主要用于一些比較相似的而且簡單的action的需求,配置如下
<default-action-ref name="show"/>
(4)結(jié)果的配置:
<result name="success" type="dispatcher">
<param name="location">/error.jsp</param>
</result>
name屬性默認(rèn)為success 、type屬性默認(rèn)為dispatcher、參數(shù)名稱也是默認(rèn)為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的標(biāo)簽了。
1.webwork.xml:
(1)在webwork2.2之前,一個ServletDispatcher 被用來處理action請求。相關(guān)的配置文件如下:
<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的話配置標(biāo)簽庫 -->
<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>這個配置是什么含義呢?經(jīng)過查找它的含義為:容器啟動時加載這個servlet的順序,正常的取值范圍是:負(fù)數(shù),0-5,如果是負(fù)數(shù)或者沒有這個標(biāo)簽,則容器在啟動時不自動加載這個servlet,如果是0-5,則按照順序加載這個servlet,執(zhí)行初始化方法init()。數(shù)字是0-5,加載順序也是0-5。
(2)webwork2.2之后可以添加一個單獨(dú)的過濾器進(jìn)行配置示例代碼如下:
<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要是不填寫的話就默認(rèn)為:" "
對于一個請求例如:/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屬性是可選的,它表明的是執(zhí)行News類中的哪一個方法,如果沒有填寫該屬性,默認(rèn)執(zhí)行類中execute()方法,如果execute()方法沒有則會報錯。
如果class屬性沒有填寫,會默認(rèn)使用com.opensymphony.xwork.ActionSupport類
當(dāng)一個指定的action找不到時就會執(zhí)行默認(rèn)的action,主要用于一些比較相似的而且簡單的action的需求,配置如下
<default-action-ref name="show"/>
(4)結(jié)果的配置:
<result name="success" type="dispatcher">
<param name="location">/error.jsp</param>
</result>
name屬性默認(rèn)為success 、type屬性默認(rèn)為dispatcher、參數(shù)名稱也是默認(rèn)為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的標(biāo)簽了。
責(zé)任編輯:冰荷
來源:
javaeye