Struts 封装 DispatchAction

本文介绍如何在Struts框架中将DispatchAction封装为基类BaseAction,并通过实例演示了如何创建具体业务Action继承该基类以实现业务逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       很多时候我们在业务上需要把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、付费专栏及课程。

余额充值