天天看小說

第183章

大B:“由於在JUnit中,參雜了其它的模式在裡面,使得命令模式的特點(diǎn)不太明顯。我給你講講以命令模式在Web開發(fā)中最常見的應(yīng)用——Struts中Action的使用作爲(wèi)例子?!?

小A:“嗯。好的?!?

大B:“在Struts中Action控制類是整個(gè)框架的核心,它連接著頁面請(qǐng)求和後臺(tái)業(yè)務(wù)邏輯處理。按照框架設(shè)計(jì),每一個(gè)繼承自Action的子類,都實(shí)現(xiàn)execute方法——調(diào)用後臺(tái)真正處理業(yè)務(wù)的對(duì)象來完成任務(wù)。”

大B:“需要注意的是:繼承自DispatchAction的子類,則可以一個(gè)類裡面處理多個(gè)類似的操作?!?

下面我們將Struts中的各個(gè)類與命令模式中的角色對(duì)號(hào)入座。

先來看下命令角色——Action控制類

publicclassAction{

……

/*

*可以看出,Action中提供了兩個(gè)版本的執(zhí)行接口,而且實(shí)現(xiàn)了默認(rèn)的空實(shí)現(xiàn)。

*/

publicActionForwardexecute(ActionMappingmapping,

ActionFormform,

ServletRequestrequest,

ServletResponseresponse)

throwsException{

try{

returnexecute(mapping,form,(HttpServletRequest)request,

(HttpServletResponse)response);

}catch(ClassCastExceptione){

returnnull;

}

}

publicActionForwardexecute(ActionMappingmapping,

ActionFormform,

HttpServletRequestrequest,

HttpServletResponseresponse)

throwsException{

returnnull;

}

}

下面的就是請(qǐng)求者角色,它僅僅負(fù)責(zé)調(diào)用命令角色執(zhí)行操作。

publicclassRequestProcessor{

……

protectedActionForwardprocessActionPerform(HttpServletRequestrequest,

HttpServletResponseresponse,

Actionaction,

ActionFormform,

ActionMappingmapping)

throwsIOException,ServletException{

try{

return(action.execute(mapping,form,request,response));

}catch(Exceptione){

return(processException(request,response,e,form,mapping));

}

}

}

大B:“Struts框架爲(wèi)我們提供了以上兩個(gè)角色,要使用struts框架完成自己的業(yè)務(wù)邏輯,剩下的三個(gè)角色就要由我們自己來實(shí)現(xiàn)了?!?

小A:“那要怎麼去實(shí)現(xiàn)啊?”

大B:“實(shí)現(xiàn)的步驟如下:1、很明顯我們要先實(shí)現(xiàn)一個(gè)Action的子類,並重寫execute方法。在此方法中調(diào)用業(yè)務(wù)模塊的相應(yīng)對(duì)象來完成任務(wù)。2、實(shí)現(xiàn)處理業(yè)務(wù)的業(yè)務(wù)類。3、配置struts-config.xml配置文件,將自己的Action和Form以及相應(yīng)頁面結(jié)合起來。4、編寫jsp,在頁面中顯式的制定對(duì)應(yīng)的處理Action?!?

第35章第113章第127章第53章第68章第196章第8章第146章第113章第85章第148章第204章第195章第188章第49章第181章第113章第25章第79章第203章第44章第214章第95章第149章第161章第205章第211章第179章第133章第110章第63章第124章第48章第34章第141章第43章第184章第68章第203章第138章第148章第72章第26章第104章第198章第8章第93章第115章第215章第146章第94章第55章第170章第192章第20章第136章第191章第34章第20章第24章第18章第145章第39章第11章第197章第20章第47章第158章第223章第7章第11章第177章第175章第212章第103章第191章第109章第39章第54章第130章第183章第220章第203章第90章第217章第173章第37章第77章第52章第124章第215章第85章第157章第181章第95章第155章第80章第18章第127章
第35章第113章第127章第53章第68章第196章第8章第146章第113章第85章第148章第204章第195章第188章第49章第181章第113章第25章第79章第203章第44章第214章第95章第149章第161章第205章第211章第179章第133章第110章第63章第124章第48章第34章第141章第43章第184章第68章第203章第138章第148章第72章第26章第104章第198章第8章第93章第115章第215章第146章第94章第55章第170章第192章第20章第136章第191章第34章第20章第24章第18章第145章第39章第11章第197章第20章第47章第158章第223章第7章第11章第177章第175章第212章第103章第191章第109章第39章第54章第130章第183章第220章第203章第90章第217章第173章第37章第77章第52章第124章第215章第85章第157章第181章第95章第155章第80章第18章第127章
主站蜘蛛池模板: 乌审旗| 西盟| 资阳市| 牙克石市| 满城县| 若羌县| 合水县| 屏山县| 乐清市| 房产| 金川县| 安岳县| 遵义县| 陕西省| 寻乌县| 方城县| 东兰县| 宜春市| 平舆县| 东台市| 南汇区| 北川| 中西区| 昂仁县| 无为县| 沧州市| 乌审旗| 金川县| 文化| 沛县| 岐山县| 余干县| 蒲城县| 九台市| 玉田县| 临安市| 和林格尔县| 讷河市| 浦东新区| 安康市| 余姚市|