学习_Java_Base_Struts_DispatchAction 动态指定

Struts  之  DispatchAction 动态指定
Struts 高级Action
-DispatchAction的作用
减少在同一个Action中有多个方法的逻辑判断
例如,在维护一个客户用例中,要同时进行增加、删除、修改、查询等多个操作,如果使用Action需要进行多次判断来执行
增强代码的可读性、重用性

DispatchAction的使用步骤
-继承DispatchAction,例如
CustomerAction extends DispatchAction
-声明和execute方法有相同方法签名(相同返回值,相同参数个数和类型)的一组方法(但是得把execute方法删除)
-在struts-config.xml配置文件中的action子元素中添加一个参数parameter="methodName"
-调用,通过指定方法名称来调用需要的方法

DispatchAction使用实例:
-声明和execute方法有相同方法签名(相同返回值,相同参数个数和类型)的一组方法


public ActionForward add(ActionMapping mapping, ActionForm form,
		HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	// TODO Auto-generated method stub]
	System.out.println("add");
	return null;
}
public ActionForward del(ActionMapping mapping, ActionForm form,
		HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	// TODO Auto-generated method stub]
	System.out.println("del");
	return null;
}
public ActionForward update(ActionMapping mapping, ActionForm form,
		HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	// TODO Auto-generated method stub]
	System.out.println("update");
	return null;
}
public ActionForward list(ActionMapping mapping, ActionForm form,
		HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	// TODO Auto-generated method stub]
	System.out.println("list");
	return null;
}



在struts-config.xml配置文件中的action子元素中添加一个参数parameter="methodName"
<action-mappings>
<action
input="/form/customerAction.jsp"
name="customerActionForm"
path="/customerAction"
scope="request"
parameter="methodName"
type="com.amaker.struts.action.CustomerActionAction"/>
</action-mappings>

-调用 通过指定方法名称来调用需要的方法
在form表单的action中直接调用
<html:form action="/customerAction?methodName=add">
使用JavaScripte:
function invoke(methodName){
	var myForm = document.forms[0];
	myForm.action="struts-dispachaction/customer.do?methodName="methodName""
	myForm.submit();
}
<input type="button" value="add" οnclick="invoke(add);">
<input type="button" value="del" οnclick="invoke(del);">
<input type="button" value="update" οnclick="invoke(update);">
<input type="button" value="list" οnclick="invoke(list);">


>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值