Struts 封装 DispatchAction

       很多时候我们在业务上需要把DispatchAction封装成自己项目的一个基类,以方便完成一些自己业务上的共通处理。DispatchAction是Action的一个子类,它的执行依然是先执行excute方法,根据参数来实行具体的业务分发。
       现在,我们先来写一个属于自己的DispatchAction:
package  blog.struts.base;

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   abstract   class  BaseAction  extends  DispatchAction ... {
    
    
public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            
throws Exception ...{

        
if ( !this.doFirst(mapping, form, request, response) )
                ...
{
                 
// 前期处理的错误处理
        }

                
else
                ...
{
                }

        ActionForward forward 
= super.execute(mapping, form, request, response);

        
if ( this.doLast(mapping, form, request, response) )
                ...
{
                
/ 后期处理的错误处理
                }

        
return forward;
    }


    
protected boolean doFirst(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
throws Exception ...{
        
//业务的前期处理
    }

    
    
protected boolean doLast(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
throws Exception ...{
        
// 业务的后期处理
    }

}

    我们现在可以写一个自己项目的Action继承于上面的 BaseAction:
package  blog.struts.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  blog.struts.base.BaseAction;

public   class  TestAction  extends  BaseAction  {
    
    
public ActionForward test(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
throws Exception{

        
// 具体的业务处理
        
        
return mapping.findForward("test");
    }

}

   现在我们执行TestAction的时候都会先进行基类的doFirst,doLast方法了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值