Struts 封装 DispatchAction

Struts框架中DispatchAction与MappingDispatchAction详解 Struts 是 Apache 基金会旗下的一个开源项目,专为简化 Java Web 应用的开发而设计。它基于经典的 MVC(Model-View-Controller)架构模式,将业务逻辑、用户界面和流程控制解耦,提升了代码的可维护性与可扩展性。其核心组件包括 ActionServlet(控制器中枢)、ActionForm(数据封装)、Action(业务控制器)和 JSP(视图展示),共同构成了一个结构清晰、易于扩展的开发框架。 阅读详情
       很多时候我们在业务上需要把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方法了。
(数字图像处理MATLAB+Python)第五章图像增强-第一节:图像增强概述和基于灰度级变换的图像增强 图像增强(Image Enhancement):指不考虑图像降质原因,利用各种数学方法和变换手段,增强图像中人们感兴趣部分或提高有用的图像特征的清晰度。从图像质量来看,图像增强提高了图像的可懂度,改善了图像的视觉效果例如在现实场景中,针对那些对比度较差、视觉效果不好的图像,我们就可以利用图像增强改善视觉质量图像增强可分为如下几种基于灰度级变换的图像增强基于直方图修正的图像增强基于照度反射模型的图像增强基于模糊技术的图像增强基于伪彩色处理的图像增强其他图像增强方法分段线性灰度级变换。 阅读详情

相关推荐

ISO 26262中的失效率计算:Mission profile的使用

Mission profile:任务剖面,即产品在完成规定任务这段时间内所经历的时间和环境的时序描述;集成电路在工作时环境温度是在不停变化的,同时也存在运行状态和非运行状态;为此标准提出了根据任务剖面(Mission profile)以及集成电路的实际结温来评估热幅度变化、循环温度幅值等因素的影响;汽车电子元器件相关的Mission profile参考IEC TR 62380:Table 11。

weixin_47071127的博客 4807

Struts之DispatchAction

 程序功能:在线管理书签,注册账号,帐号管理架构方案:   (1)前段控制器:             Front Controller 采用前端控制器接受用户请求,由前段控制器决定由那一个具体的控制器来处理请求   (2)控制器             前段控制器决定好控制器后,将请求交由控制器处理,控制器截取用户请求参数,进行数据验证,并呼叫业             务层的对象完成请求 

我的世界我的梦 1555

通讯软件002——快速使用modscan进行modbus调试

快速使用modscan进行modbus调试

zhouwl72的博客 1031

层层递进Struts1(七)详解DispatchAction

通过前面几篇博客,不知道大家有没有发现这个问题,虽然现在可以灵活控制跳转了,但是Action的数量还是比较多,如何既能保证跳转灵活,还能减少Action的数量?这就是我们这篇博客所说的DispatchAction,如其名,可以理解为“分发式Action”,使用它可以避免为每个Action创建一个类。

李达 3015

域用户无法修改密码问题的解决方案

问题描述:加域的电脑无法更改密码,提示“无法更新密码,为新密码提供的值不符合字符域的长度、复杂度或历史要求”。 问题原因:域控制器中相关设置问题,主要如下图所示(如启用复杂性、最短期限和强制密码历史) 解决方案:在域控制器中更改对应的密码策略即可: ① 禁用复杂性要求 ② 最短使用期限改为0天 ③ 强制密码历史改为0 如果出现无法更改的情况,如下图箭头所指的图标所示 代表需要在域控制器的组策...

运维日记 3万+

百度贴吧爬虫实战:完整实现与使用指南

使用 csv 模块创建写入器,首先写入表头("标题" 和 "链接"),然后遍历帖子字典,将每个标题和链接作为一行写入文件。首先检查内容是否为空,然后通过查找 JSON 结构的起始({)和结束(})位置,提取有效的 JSON 片段。接着遍历帖子列表中的每个条目,提取标题文本和对应的链接,对于相对路径的链接会自动补全为完整的 URL。从 JSON 提取标题和链接此方法专门用于从解析后的 JSON 数据中提取帖子标题和对应的链接。提取到的标题和链接以字典形式返回,键为标题,值为对应的完整链接。

qq_63736560的博客 2016

Struct1.x中Action和DispatchAction的使用

在java web开发中,原始的配置action都是使用一个action类实现一个功能,如果工程项目够大,action类数目会很多,就增加了该项目后期的维护难度。解决的方法,这里给大家介绍一个struts包下的action子类,DispatchAction。       DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操

kissing7的专栏 1165

西门子S7-1200/1500 PLC编程与应用技巧

西门子S7-1200 PLC是一款紧凑型的控制器,适用于小型到中型的自动化控制任务。紧凑设计:集成了I/O模块,减少了控制柜的空间需求。高性能:高达25µs的扫描时间,能够快速响应。模块化扩展:支持扩展输入输出模块、通信模块和智能模块,满足不同的应用需求。多种编程语言:支持Ladder图(梯形图)、功能块图(FBD)、结构化文本(ST)等多种编程语言。西门子S7-1200与S7-1500 PLC是强大且灵活的工业控制系统,适用于各种自动化应用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2666

DispatchAction

DispatchAction   在java web开发中,原始的配置action都是使用一个action类实现一个功能,如果工程项目够大,action类数目会很多,就增加了该项目后期的维护难度。解决的方法,这里给大家介绍一个struts包下的action子类,DispatchAction。  DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用

387

conda install出现CondaValueError: Malformed version string invalid character(s)解决方案

本文主要介绍了conda install出现Solving environment:failed、CondaValueError: Malformed version string invalid character(s),希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 步骤一 2.2 步骤二 2.3 步骤三

weixin_43178406的博客 6万+

PCB仿真软件:Altium Designer_(18).PCB设计中的热管理

在PCB设计中,热管理是一个至关重要的环节。随着电子设备的集成度越来越高,功耗和发热量也随之增加,不合理的热设计可能导致电路板过热,从而影响电路的性能和可靠性。热管理不仅能够提高电路板的使用寿命,还能确保电路在各种环境条件下的稳定工作。本节将详细介绍如何在Altium Designer中进行有效的热管理,包括热分析、热设计和热仿真等关键步骤。

kkchenjj的博客 1984

DispatchAction的用法

DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。 DispatchAction中主要包括一下几个方法:protected ActionForward disp

1381

【华为OD技术面试真题 - 技术面】- 测试面试题(1)

专栏:华为OD面试真题精选 目录: 2024华为OD面试手撕代码真题目录以及八股文真题目录黑盒测试:白盒测试:基本功能验证:边界条件测试:空白输入测试:特殊字符和格式测试:响应时间测试:压力测试:针对在不同系统和设备上测试聊天窗口功能,以及网络正常的前置条件,我们可以增加以下测试用例:系统和设备:PC端测试:移动端测试:功能验证:前置条件:网络性能影响测试:Postman:SoapUI:JMeter:Rest-Assured:Tricentis Tosca:ReadyAPI:CI/CD工具集成:测试管理工

算法大师! 3689

Action中的战斗机:DispatchAction

       在java web开发中,原始的配置Action都是使用一个Action类实现一个功能,如果工程项目够大,Action类数目会很多,写配置文档很累人而且还增加了该项目后期的维护难度。解决的方法,这里给大家介绍一个struts包下的Action子类,DispatchAction。 DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类

甲骨文进行曲 667

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

DispatchAction类-根据请求参数实现业务分派 .

  DispatchAction是Struts包含的另一个能大量节省开发时间的Action类。 与其它Action类仅提供单个execute()方法实现单个业务不同,DispatchAction允许你在单个Action类中编写多个与业务相关的方法。   这样可以减少Action类的数量,并且把相关的业务方法集合在一起使得维护起来更容易。 要使用DispatchAction的功能,需要自...

十年回首,一纸感动! 351

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[J2EE]struts+ejb笔记

DispatchAtion: -org.apache.struts.actions.DispatchAction 这个类是个抽象类,但实现父类Action的execute方法,在项目中重写这个类可以专注于执行方法面不必自己实现execute方法 直接给一个例子: 1.继承DispatchAtion类,其包括一些方法,如checkUser()、logon()、logout()等,这些方法...

weixin_30686845的博客 121

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Struts源码阅读——三个常用的辅助类DispatchAction

action>举个例子,如果我们有一个CalcAction类,它包含了addsubtractmultiply和divide函数,我们可以通过以下方式在中为每个函数定义一个路径:在这个配置中,每个<action>元素对应了CalcAction中的一个函数,parameter属性指定了要调用的控制函数的名称。

spy47_的博客 1151

Struts1的DispatchAction()方法

在早期的Struts 1.x中为了在大的工程下方便管理而添加了DispatchAction()方法 DispatchAction继承与Action类,是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。 Dispatc

chensl1989的专栏 849

struts1的dispatchAction

[size=large]DispatchAction是个转发器,把请求转发到action,具体的请求处理是由action完成的。 在java web开发中,原始的配置action都是使用一个action类实现一个功能,如果工程项目够大,action类数目会很多,就增加了该项目后期的维护难度。解决的方法,这里给大家介绍一个struts包下的action子类,DispatchAction。  ...

203

struts1 中DispatchAction 与action 的区别,以及DispatchAction的用法含义

DispatchAction是个转发器,把请求转发到action,具体的请求处理是由action完成的。 在java web开发中,原始的配置action都是使用一个action类实现一个功能,如果工程项目够大,action类数目会很多,就增加了该项目后期的维护难度。解决的方法,这里给大家介绍一个struts包下的action子类,DispatchAction。  DispatchActio

dw_java08的专栏 7613

Struts1框架七之DispatchAction的说明

只要看过我之前的项目的同学一定会发现,哪些项目的配置相当复杂、繁琐!并且一个类对应一个请求,一个请求对应一个ActionForm,这对于真正的项目开发来说是一个巨大的BUG般的存在,不合理、非常不合理、完全不合理!这些不合理在Struts1当然不能存在。所以我们今天就讲讲怎么让一个类可以对应多个请求,多个请求怎么对应一个ActionForm。这样开发效率、配置量都会大大的减少. 首先,我们从配置文

qq_17165717的博客 552

Struts中DispatchAction解析

DispatchAction是仅次于Action,使用最频繁的Action,用于同一个表单中有多个提交按钮时,但提交的逻辑处理完全不同的情况,如:添加、删除和修改等。          以前的解决办法是为每个提交按钮增加JavaScript脚本,分别提交给不同的Action处理,这种特别的麻烦,需要页面需要有JavaScript判断另外还得需要多个Action类。          Dispa

Maginaing 2555

struts1 DispatchAction

DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。 DispatchAction中主要包括一下几个方法: protected ActionForward dispa

蜗牛天堂 775

DispatchAction类

DispatchActionStruts提供了多种Action供选择使用。普通的Action只能通过调用execute()方法执行一项任务,如果在一个模块的开发中包含许多的基本操作,比如对一个银行系统的操作包括存钱、取钱、查询余额等,那么就需要分别为每个操作创建一个Action类。当这些基本操作非常多时,那么Action类就会变得庞大,而且每个Action类可能执行一些重复的操作,造成代码的冗

mcy478643968的专栏 1450

DispatchAction学习

DispatchAction继承自Action类,它是一个抽象类,封装了一 些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装 一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。 DispatchAction中主要包括一下几个方法: <其实是用反射> protect...

weixin_30242907的博客 394
上一篇: Exception 的 StackTrace 信息的丢失
下一篇: Oracle PL/SQL 操作 分区
TYLEO
博客等级 码龄23年 9粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值