webwork基本配置流程

WebWork目前沒有集成很好的IDE工具,只能手動配置。可以在http://www.opensymphony.com/webwork/下載到最新的WebWork開發包。以Eclipse+webwork-2.2.4爲例配置步驟如下:


1、創建web工程


2、拷貝WebWork的jar文件到web工程的lib目錄,必須的jar文件包括Webwork-2.2.4.jar和WebWork的lib目錄下的default目錄中的所有jar文件。


3、修改web.xml,添加WebWork過濾器,固定內容如下:
<filter>
<filter-name>WebWork</filter-name>
<filter-class>com.opensymphony.WebWork.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
<filter-name>WebWork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上內容,WebWork包中提供了模板文件,可以直接拷貝過來修改一下即可。
模板文件路徑:Webwork-2.2.4/webapps/blank/src/webapp/WEB-INF/web.xml

4、在src目錄下創建xwork.xml文件(路徑和文件名均是固定寫法),內容如下:
<xwork>
<include file="webwork-default.xml"/>

<package name="default" extends="webwork-default">

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

<action name="home" class="com.opensymphony.WebWork.example.HomeAction" method="">
<result>/WEB-INF/pages/home.jsp</result>
</action>

<!-- Add your actions here -->
</package>
</xwork>
以上內容,WebWork包中提供了模板文件,可以直接拷貝過來修改一下即可。
模板文件路徑:Webwork-2.2.4/webapps/blank/src/webapp/WEB-INF/classes/xwork.xml
其中被包含的webwork-default.xml文件不要隨意修改(包括裏面內容的順序),修改後WebWork可能會無法正常工作。

package標籤使得配置文件也可以分包存放(與代碼的包不同)。action標籤的name屬性就是表單提交時使用的action的名字,class屬性代表處理請求的action類。method屬性(可選)可以指定執行的方法名,這是一個非常好用的屬性,在Struts中每個邏輯處理單元都要單獨寫一個action類,這樣一個工程可能會有很多action類,而每個action只做一個處理,使用method屬性可以只寫一個action類,根據需要指定不同的方法處理請求即可。
result標籤指定action類執行完後轉向的顯示頁面。result標籤也可以指定使用模板輸出顯示內容,如Freemarker或Velocity。


5、創建action類,需要手工指定實現com.opensymphony.xwork.Action接口。在Struts中如果有表單,則對應表單需要有formbean,在WebWork中formbean則不是必須的,可以將表單提交的屬性作爲變量,都寫到action類中,但必須爲變量添加set和get方法,WebWork使用類似Spring的注入功能實現變量的賦值。

action類也可以指定使用單獨的bean類實現類似formbean的功能,只需在action類中將此bean類的對象實例化好,並設置set和get方法即可。
如果不使用formbean則表單提交時表單元素的name屬性值要和action類中相應的變量名相同,如果使用formbean則表單元素的name屬性值爲“bean類名.屬性名”。

com.opensymphony.xwork.Action接口中的execute方法並沒有request和response參數,而是將請求和響應與web容器剝離,單獨封裝起來,由WebWork核心控制器管理,所以在處理請求時使用的request或session都要從WebWork上下文中獲取。
execute方法返回的是一個字符串而不是像Struts一樣封裝的ActionMapping對象,返回的字符串根據xwork.xml文件中對應的action標籤中的result標籤找到指定的顯示頁面。
com.opensymphony.xwork.Action接口中定義了一些常用的常量用來表示頁面的轉向,常量的值與常量名相同。例如SUCCESS表示執行成功。WebWork默認的也是轉發而不是重定向。

最簡單的action類的代碼如下:

import java.util.Map;

import com.opensymphony.xwork.Action;
import com.opensymphony.xwork.ActionContext;

public class SampleAction implements Action {

private String param = null; //聲明變量(取代formbean的方式)

/*變量的get方法*/
public String getParam() {
return param;
}

/*變量的set方法*/
public void setParam(String param) {
this.param = param;
}

/*實現Action接口的execute方法,調用Model層實現業務邏輯*/
public String execute() throws Exception {
Map session = ActionContext.getContext().getSession();
session.put("anyParam",getParam());
return SUCCESS; //指定的顯示頁面在xwork.xml文件中設置
}

}


6、至此基本的WebWork應用已經配置好了,創建Model層和View層實現業務邏輯即可。

WebWork的工作流程如圖:



WebWok還有一個可選的配置文件,文件名爲webwork.properties,同樣是放在src目錄下。WebWork2.X在Tomcat5.5以上或Resin3可以正常運行,對中文支持不好,需要手動轉換編碼,可以添加如下配置信息:
webwork.locale=zh_CN
webwork.i18n.encoding=GBK
webwork中的action類缺省後綴是action,也可以通過配置文件修改
webwork.action.extension=action
對webwork.properties文件詳細的配置說明可以參考:
http://wiki.javascud.org/display/ww2cndoc/WebWork.properties

WebWork2.2.4以後就不再升級,已合併到Struts2中,後續版本只是打補丁而已。Struts2的核心就是使用的WebWork,瞭解WebWork的工作方式可以輕鬆的過渡到Struts2。
有關更多的WebWork與Struts2的內容可以參考
http://book.csdn.net/bookfiles/479/10047916693.shtml
發佈了3 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章