内置的struts Action 类----DispatchAction

一、用途:通常在一个Action中只能完成一种业务操作,例如用户的增、删、改得放在三个Action 中,但是如果我想把这三个业务都放在一个Action中,想通过URL后跟参数来区分,即通过http://localhost:8080/proj/user.do?method=insert  表示增加
          http://localhost:8080/proj/user.do?method=delete  表示删除
          http://localhost:8080/proj/user.do?method=alter   表示修改
          可见增、删、改是写在 path 为 user的 一个action  这个时候就用到的DispatchAction
二、使用方法
    1、创建的 action 继承 DispatchAction
    2、创建自己需要的方法,要和action中的execute有相同的参数个数和参数类型
    如下例:一个action中有两个方法,add与sub, 它们都与execute有相同的参数个数和参数类型
    public class Test1Action extends DispatchAction {

	public ActionForward sub(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		//SessionContainer a=this.getSessionContainer(request);
		System.out.println("+++++++++sub++++++++++++");
		return null;
	}

	public ActionForward add(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		System.out.println("+++++++++++add+++++++++++");
		return null;
	}
}
 
3、在struts.xml中进行配置
      
   		<action  path="/test1"
			type="com.qf.struts.action.Test1Action" 
			validate="false"
			parameter="method" />

4、http://localhost:8080/test/test1.do?method=sub
  http://localhost:8080/test/test1.do?method=add
  分别测试
   action的parameter属性决定了URL后跟的参数变量
三、找不到action的检查方法
1、首先检查action中的方法是否是那四个参数,以及是否 throws 了Exception
2、检查action的配置文件是否配置了parameter 属性。

你可能感兴趣的:(xml,struts)