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);">
>
学习_Java_Base_Struts_DispatchAction 动态指定
最新推荐文章于 2019-01-19 19:43:01 发布