在Struts中允许多个请求对应一个Action,例如对Book对象的增删改查操作,可以交给一个Action处理,Action根据请求地址中附加的参数信息,再派发到相应的方法
1. 继承DispatchAction:要注意的是开发人员在声明参数对应的方法时,方法的签名需要与execute() 方法一致
package com.kexin.web.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class BookAction extends DispatchAction {
public ActionForward add(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2, HttpServletResponse arg3)
throws Exception {
System.out.println("add");
return null;
}
public ActionForward update(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2, HttpServletResponse arg3)
throws Exception {
System.out.println("update");
return null;
}
public ActionForward find(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2, HttpServletResponse arg3)
throws Exception {
System.out.println("find");
return null;
}
public ActionForward delete(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2, HttpServletResponse arg3)
throws Exception {
System.out.println("delete");
return null;
}
}
- 配置struts-config文件的action并指定parameter
<action path="/bookAction" type="com.kexin.web.action.BookAction"
parameter="method">
</action>
- 在链接中带好对应参数
<html:link action="/bookAction?method=add">增加</html:link>
<html:link action="/bookAction?method=delete">删除</html:link>
<html:link action="/bookAction?method=update">更改</html:link>
<html:link action="/bookAction?method=find">查找</html:link>
注意 DispatchAction是Action的子类,它重写了Action的execute方法,因此用户继承DispatchAction时,若想使用DispatchAction提供的分发功能,++切记不可覆盖其execute方法++。