DispatchAction 和LookupDispatchAction和MappingDispatchAction
不知道有没有人在实际中使用过struts的DispatchAction系列? 谁又能给我明白的讲讲DispatchAction, LookupDispatchAction, MappingDispatchAction各自的用法和区别呢?
1) DispatchAction就是在struts-config中用parameter参数配置一个表单字段名,这个字段的值就是最终替代execute被调用的方法. 例如parameter="method"而request.getParameter("method")="save",其中"save"就是MethodName。struts的请求将根据parameter被分发到"save"或者"edit"或者什么。但是有一点,save()或者edit()等方法的声明和execute必须一模一样。
2) LookupDispatchAction继承DispatchAction, 用于对同一个页面上的多个submit按钮进行不同的响应。其原理是,首先用MessageResource将按钮的文本和ResKey相关联,例如button.save=保存;然后再复写getKeyMethodMap(), 将ResKey和MethodName对应起来, 例如map.put("button.save", "save"); 其配置方法和DispatchAction是一样的, 使用时要这么写:
<?xml:namespace prefix = html />
<html:submit property="method">
<bean:message key="button.save">
</bean:message>
</html:submit>
3) MappingDispatchAction是1.2新加的, 也继承自DispatchAction. 它实现的功能和上面两个区别较大, 是通过struts-config.xml将多个action-mapping映射到同一个Action类的不同方法上, 典型的配置就是:
<ACTION-MAPPINGS>
<ACTION parameter="save" type="logic.UserAction" path="/saveUser"></ACTION>
</ACTION-MAPPINGS>
然后UserAction继承MappingDispatchAction,其中有:
public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
等方法
可以看到, 不管怎么变化, 其实这些类都是把execute给分解开, 不管是save, edit还是其他什么方法, 其实都是和原来的execute是等价的, save和edit之间没有任何直接的关系, 而事实呢,它们是同一个业务模型的两种不同操作。 我觉得这就是一个问题,对于save和edit这两种请求, 我后台逻辑有可能只是调用service的方法那一句不一样,其他代码是完全一致的(例如错误处理, 日志记录等)。因此我想出了这个小东西,在execute方法内部进行局部分解。
分享到:
相关推荐
本文将详细解析“osgb格式转obj,osg转osgb,osgb转ive,ive转obj”等相关知识点,以及如何使用相应的互转工具。 1. osgb格式: OSGB(Open Scene Graph Binary)是一种基于Open Scene Graph (OSG) 的二进制文件...
在标题和描述中提到的"obj转osgb"、"fbx转osgb"和"dae转osgb",是指将三种不同的3D模型文件格式转换为OSGB格式。 1. OBJ格式:源自Wavefront Technologies的OBJ文件格式,是通用的3D模型格式,包含顶点、纹理坐标...
里面包含了Hex文件的合并移机Hex文件转Bin文件,本来打算Bin转Hex也块做的,基于下面两个原因,没有做: 1、bin转hex功能暂时我没用到,而且也应该不会用到 2、bin转hex牵涉到一个起始地址问题,bin文件全是数据,不...
Txt文件编码批量转换器用于批量转换txt文本文档的编码格式。通常,我们电脑里的txt文件都是ASNI编码,当放到手机或MP3里时,打开看到的往往都是乱码,面目全非。我们需要先把它们转换为Unicode格式,才能够在手机和...
交易猫转转闲鱼源码一款二手闲置源码,今天测试了一下,交易猫转转闲鱼源码功能完整 感兴趣的可以下载了解。 搭建教程: 上传源码到服务器然后解压好,将域名绑定到源码所在文件夹,然后找到数据库config/Conn....
HEX 转BIN , bin转IMG 文件工具, 分3部完成转换。1, 打开CMD 首先要将需要转换的HEX文件放在转换目录下。 CD到文件所在目录: cd C:\Users\JC\Desktop\测试\OTA_test\OTA_test\projects\target_apps\ble_examples\...
最简单免费的MFLAC转FLAC、MP3的办法 解压压缩包按照指示即可完成 最简单免费的MFLAC转FLAC、MP3的办法 解压压缩包按照指示即可完成 最简单免费的MFLAC转FLAC、MP3的办法 解压压缩包按照指示即可完成 最简单免费...
在数字音频领域,格式转换是常见的需求之一,尤其对于在线音频平台如喜马拉雅的用户。喜马拉雅XM文件是该平台特有的音频格式,可能在某些设备或播放器上不被支持,这时就需要将XM文件转换为更通用的格式,如MP3或M4A...
标题中的“中文日语转换,汉字转平假名,中文转日语”指的是一个软件或服务的功能,它能够帮助用户将中文文本转化为日语,同时将汉字转化为日语中的平假名。平假名是日语三种书写系统之一,主要用于日常书写和教育,与...
标题中的"C++转C#工具"指的是一个软件应用程序,它能帮助程序员将源代码从C++语言转换为C#语言。这种工具通常用于在已经拥有大量C++代码库的情况下,想要利用C#语言的优势,或者将项目迁移到.NET框架的情况。 C++是...
典型的应用:WAV转MP3、WAV转WMA、WAV转AAC、WAV转AC3、MP3转WAV、MP3转WMA、MP3转AAC、MP3转AC3、其它格式转AMR、CD转WAV等 主要特点: 1、在各种声音格式之间按不同的设置进行相互转换; 2、支持将其它的音频...
【TypeC转串口TTL micro USB转串口】是一种常见的数据通信接口转换技术,它允许设备通过TypeC或micro USB接口与串行接口(如UART)进行通信。这种转换通常用于开发、调试和测试电子设备,特别是对于那些需要通过串口...
巅峰wxid转微信加好友工具v1.0巅峰wxid转微信加好友工具v1.0巅峰wxid转微信加好友工具v1.0巅峰wxid转微信加好友工具v1.0巅峰wxid转微信加好友工具v1.0巅峰wxid转微信加好友工具v1.0巅峰wxid转微信加好友工具v1.0巅峰...
"TXT转BIN工具"就是这样的一个实用程序,它允许我们将文本文件转换为二进制文件。这种转换在很多场景下非常有用,比如编程、数据存储或者逆向工程等。接下来,我们将深入探讨这个过程以及相关知识点。 首先,我们要...
48V 转 24V,48V 转 20V,48V 转 9V,48V 转 5V,48V 转 3.3V,48V 转 3V,48V 转 1.8V,48V 转 24V 降压降压芯片,48V 转 20V 降压降压芯片,48V 转 9V 降压降压芯 片,48V 转 5V 降压降压芯片,48V 转 3.3V 降压...
StarWind Converter 是一款专业的虚拟磁盘格式转换工具,允许用户将VMWare虚拟机专用虚拟磁盘格式(VDMK)与Microsoft Virtual PC虚拟机专用虚拟磁盘格式(VHD)、RAW虚拟字盘格式之间(IMG)互相换转。 可以实现VMWare和...
标题“java实现office、wps转pdf,pdf转word”指的是利用Java编程来实现在不同办公文档格式间的转换,特别是从Microsoft Office和WPS格式转换为PDF,以及从PDF反向转换为Word文档。 首先,让我们讨论从Office和WPS...
MySQL到Oracle转换是一个常见的任务,特别是在企业级应用迁移或整合过程中。这个工具专注于将MySQL的数据库结构和数据转换为Oracle数据库兼容的格式。下面将详细解释这个过程涉及的知识点。 1. **SQL语言的差异**:...
当输入信号发生变化时,程序会对其进行判断,如果是左转或右转,程序会将其记录下来,并输出结果。 在程序中,还使用了两个数组direct_left和direct_right,分别存储左转和右转的编码器状态。通过比较当前的输入...
巧用Python批量实现PDF文件转换为Word文件(源码,图片也可以转哦!只需修改文件名和路径即可) 巧用Python批量实现PDF文件转换为Word文件(源码,图片也可以转哦!只需修改文件名和路径即可) 巧用Python批量实现...