DispatchAction
Struts提供了多种Action供选择使用。普通的Action只能通过调用execute()方法执行一项任务,如果在一个模块的开发中包含许多的基本操作,比如对一个银行系统的操作包括存钱、取钱、查询余额等,那么就需要分别为每个操作创建一个Action类。当这些基本操作非常多时,那么Action类就会变得庞大,而且每个Action类可能执行一些重复的操作,造成代码的冗余。
org.apache.struts.actions.DispatchAction是Action类的一个子类,它封装了一些基础方法,来实现使用一个Action处理多个操作的能力。DispatchAction类可以帮助我们用一个Action类封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。
DispatchAction类实现了父类(Action)的execute()方法,所以它的子类就不用来实现这个方法了,只需要专注于实际操作的方法即可,下面是一个扩展DispatchAction类的例子:
|
在struts-config.xml文件中配置DispatchAction类和配置普通的Action类有一点不同,在Action配置中多一个parameter属性,这个属性会指引DispatchAction类找到对应的方法,下面是DispatchAction类的配置:
01 <action path="/userBank" name="bankForm" |
01 <html:form action="/userBank.do?method=saveMoney " > |
注:
页面中传的执行那个方法的方式不好,不如写个JS
如:
function ab(operate){
if(operate.equal("jia")){
document.CaclForm.action="cacl.do?add";
}
if(operate.equal("jian")){
document.CalcForm.action="cacl.do?jian";
}
}