?? abstractcmdaction.java
字號(hào):
package com.easyjf.web.tools;
import java.lang.reflect.Method;
import com.easyjf.util.CommUtil;
import com.easyjf.web.IWebAction;
import com.easyjf.web.Module;
import com.easyjf.web.Page;
import com.easyjf.web.WebForm;
/**
*
* <p>Title: 通過(guò)命令式Action類</p>
* <p>Description: 這是一個(gè)對(duì)Action命令進(jìn)行封裝的抽象類,用于為提供命令式WebAction的寫法用戶直接調(diào)用,可以減少書寫繁鎖的if語(yǔ)句</p>
* easyJWebCommand命令del(或Del)對(duì)應(yīng)Action類的doDel方法
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: www.easyjf.com</p>
* @author 蔡世友
* @version 1.0
*/
public abstract class AbstractCmdAction implements IWebAction {
public Page execute(WebForm form, Module module) throws Exception {
Object beforeCheck=doBefore(form,module); //模版方法
if(beforeCheck!=null)
{
//如果Action執(zhí)行前檢查,返回Page則直接跳轉(zhuǎn)
if(beforeCheck.getClass()==Page.class)return (Page)beforeCheck;
}
Page forward=null;
String command=CommUtil.null2String(form.get("easyJWebCommand"));
if(!"".equals(command))
{
Class[] paras=new Class[2];
paras[0]=WebForm.class;
paras[1]=Module.class;
String cmd="do"+command.substring(0,1).toUpperCase()+command.substring(1);
Method m=this.getClass().getMethod(cmd,paras);
if(m!=null)
{
Object[] objs=new Object[2];
objs[0]=form;
objs[1]=module;
Object ret=m.invoke(this,objs);
if(ret instanceof Page)forward=(Page)ret;
}
else
throw new Exception("方法名稱不正確,在"+this.getClass()+"中找不到"+cmd+"方法!請(qǐng)確認(rèn)您頁(yè)面中的easyJWebCommand參數(shù)值是否正確!");
}
else
forward=doInit(form,module);
doAfter(form,module);
return forward;
}
/**
* 在執(zhí)行具體的doCommond方法前執(zhí)行
* @param form
* @param module
* @return
*/
public Object doBefore(WebForm form,Module module){return null;};//Action前置校驗(yàn)
/**
* 在沒有輸入任何命令的時(shí)候執(zhí)行
* @param form
* @param module
* @return
*/
public abstract Page doInit(WebForm form,Module module);//初始化數(shù)據(jù),如表單項(xiàng)及默認(rèn)值等
/**
* 在執(zhí)行doCommand方法后執(zhí)行
* @param form
* @param module
* @return
*/
public Object doAfter(WebForm form,Module module){return null;};//Action后置處理
/**
* @param args
*/
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -