继承这个类后,在Action里可以定义多个方法,而不是只能在execute方法中写代码了。
Action代码(需要继承DispatchAction)
package com.xxc.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;
/*
* 一个action完成crud
* 在DispatchAction的子类中增加新的方法时
* * 新增的方法的方法的返回值和Action中的execute方法相同
* * 新增的方法的方法的参数类型要和Action中的execute方法相同
* * 新增的方法的方法的参数顺序和个数要和Action中的execute方法相同
* * 新增的方法的方法的名称和Action中的execute方法的名称不同
*/
public class Param extends DispatchAction {
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("add运行");
return null;
}
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("delete运行");
return null;
}
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("update运行");
return null;
}
}
struts-config.xml
<action-mappings>
<!--
method = save"
参数名称 =参数的值
<a href="${pageContext.request.contextPath}/param.do?me=add">添加员工信息</a><br>
parameter属性:该属性的值应为jsp页面中参数的名称 parameter="me" 代表需要被执行方法名称的参数名
DispatchAction 在执行时,
把parameter指向的参数名称(me)的值(add)作为DispatchAction这个Action子类中方法的名称
-->
<action path="/param" type="com.xxc.action.Param" parameter="me"></action>
</action-mappings>
param.jsp
<body>
<a href="${pageContext.request.contextPath}/param.do?me=add">添加</a>
<a href="${pageContext.request.contextPath}/param.do?me=delete">删除</a>
<a href="${pageContext.request.contextPath}/param.do?me=update">修改</a>
</body>