使用DispatchAction类,为你的系统减肥!

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在Struts中你要尽可能的不用Action类,因为他们让你的项目变得臃肿,你可以使用org.apache.struts.actions.DispatchAction类来完成业务逻辑所需要的相关操作集中到一个Action类中,在继承DispatchAction后,你不再是重新定义execute()方法,而是编写你自己的业务方法,execute()方法在DispatchAction抽象类定义。

例如我们可以继承DispatchAction来定义一个AccountAction,在当中集中管理一些与账号相关的操作,如下:

package onlyfun.caterpillar;

import javax.servlet.http.*;

import org.apache.struts.action.*;

import org.apache.struts.actions.*;

public class AccountAction extends DispatchAction {

public ActionForward login(ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws Exception {

// login相关的操作

......

}

public ActionForward logout(ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws Exception {

// logout相关的操作

......

}

public ActionForward method1(ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws Exception {

// method1相关的操作

......

}

.....

}

我们不再重新定义execute()方法,而是定义我们自己的login()、logout()等方法,

这些方法接收与execute()相同的参数,并且也传回ActionForward对象。

使用DispatchAction时,我们要在struts-config.xml定义:

path="/account" type="onlyfun.caterpillar.AccountAction" parameter="method" name="userForm"> name="greeting" path="/login/greeting.jsp"/>

主要就是在parameter的属性上,我们指定以method请求参数来指定我们所要使用的方法,

例如下面的网址将会执行AccountAction的login()方法:

http://localhost:8080/HelloStruts/account.do?method=login&name=caterpillar&password=1234

注意在请求参数中,我们包括了method=login来指定执行login()方法,同样的,

如果你要执行logout()方法,则如下:

http://localhost:8080/HelloStruts/account.do?method=logout

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航