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

发表:2005-5-26 2:22:41 出处:你的博客网(yourblog.org)

 

在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()方法


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值