溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

WebWork工作方式是什么

發(fā)布時間:2021-07-14 16:07:39 來源:億速云 閱讀:234 作者:chen 欄目:編程語言

本篇內(nèi)容介紹了“WebWork工作方式是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

WebWork目前沒有集成很好的IDE工具,只能手動配置??梢栽趆ttp://www.opensymphony.com/webwork/下載到***的WebWork開發(fā)包。

以Eclipse+webwork-2.2.4為例配置步驟如下:

1、創(chuàng)建web工程

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

3、修改web.xml,添加WebWork過濾器,固定內(nèi)容如下:

WebWork com.opensymphony.WebWork.dispatcher.FilterDispatcher WebWork /*

以上內(nèi)容,WebWork包中提供了模板文件,可以直接拷貝過來修改一下即可。

模板文件路徑:Webwork-2.2.4\webapps\blank\src\webapp\WEB-INF\web.xml

4、在src目錄下創(chuàng)建xwork.xml文件(路徑和文件名均是固定寫法),內(nèi)容如下:

/WEB-INF/pages/home.jsp

以上內(nèi)容,WebWork工作方式中提供了模板文件,可以直接拷貝過來修改一下即可。

模板文件路徑:

Webwork-2.2.4\webapps\blank\src\webapp\WEB-INF\classes\xwork.xml

其中被包含的webwork-default.xml文件不要隨意修改(包括里面內(nèi)容的順序),修改后WebWork可能會無法正常工作。

package標(biāo)簽使得配置文件也可以分包存放(與代碼的包不同)。

action標(biāo)簽的name屬性就是表單提交時使用的action的名字,class屬性代表處理請求的action類。

method屬性(可選)可以指定執(zhí)行的方法名,這是一個非常好用的屬性,在Struts中每個邏輯處理單元都要單獨(dú)寫一個action類,這樣一個工程可能會有很多action類,而每個action只做一個處理,使用method屬性可以只寫一個action類,根據(jù)需要指定不同的方法處理請求即可。

result標(biāo)簽指定action類執(zhí)行完后轉(zhuǎn)向的顯示頁面。

result標(biāo)簽也可以指定使用模板輸出顯示內(nèi)容,如Freemarker或Velocity。

5、創(chuàng)建action類,需要手工指定實現(xiàn)com.opensymphony.xwork.Action接口。

在Struts中如果有表單,則對應(yīng)表單需要有formbean,在WebWork中formbean則不是必須的,可以將表單提交的屬性作為變量,都寫到action類中,但必須為變量添加set和get方法,WebWork工作方式中使用類似Spring的注入功能實現(xiàn)變量的賦值。

action類也可以指定使用單獨(dú)的bean類實現(xiàn)類似formbean的功能,只需在action類中將此bean類的對象實例化好,并設(shè)置set和get方法即可。

如果不使用formbean則表單提交時表單元素的name屬性值要和action類中相應(yīng)的變量名相同,如果使用formbean則表單元素的name屬性值為“bean類名.屬性名”。

com.opensymphony.xwork.Action接口中的execute方法并沒有request和response參數(shù),而是將請求和響應(yīng)與web容器剝離,單獨(dú)封裝起來,由WebWork核心控制器管理,所以在處理請求時使用的request或session都要從WebWork上下文中獲取。

execute方法返回的是一個字符串而不是像Struts一樣封裝的ActionMapping對象,返回的字符串根據(jù)xwork.xml文件中對應(yīng)的action標(biāo)簽中的result標(biāo)簽找到指定的顯示頁面。

com.opensymphony.xwork.Action接口中定義了一些常用的常量用來表示頁面的轉(zhuǎn)向,常量的值與常量名相同。例如SUCCESS表示執(zhí)行成功。WebWork默認(rèn)的也是轉(zhuǎn)發(fā)而不是重定向。

最簡單的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; }

/*實現(xiàn)Action接口的execute方法,調(diào)用Model層實現(xiàn)業(yè)務(wù)邏輯*/

public String execute() throws Exception { Map session = ActionContext.getContext().getSession();

session.put("anyParam",getParam()); return SUCCESS;

//指定的顯示頁面在xwork.xml文件中設(shè)置 } }

6、至此基本的WebWork應(yīng)用已經(jīng)配置好了,創(chuàng)建Model層和View層實現(xiàn)業(yè)務(wù)邏輯即可。

WebWork的工作流程: WebWok還有一個可選的配置文件,文件名為webwork.properties,同樣是放在src目錄下。WebWork2.X在Tomcat5.5以上或Resin3可以正常運(yùn)行,對中文支持不好,需要手動轉(zhuǎn)換編碼,可以添加如下配置信息:

webwork.locale=zh_CN webwork.i18n.encoding=GBK webwork中的action類缺省后綴是action,

也可以通過配置文件修改 webwork.action.extension=action 對webwork.properties文件詳細(xì)的配置說明可以參考: http://wiki.javascud.org/display/ww2cndoc/WebWork.properties

WebWork2.2.4以后就不再升級,已合并到Struts2中,后續(xù)版本只是打補(bǔ)丁而已。

Struts2的核心就是使用的WebWork,了解WebWork的工作方式可以輕松的過渡到Struts2。

“WebWork工作方式是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI