`
- 浏览:
61497 次
- 性别:
- 来自:
广州
-
DispatchAction是个转发器,把请求转发到action,具体的请求处理是由action完成的。
在java web开发中,原始的配置action都是使用一个action类实现一个功能,如果工程项目够大,action类数目会很多,就增加了该项目后期的维护难度。解决的方法,这里给大家介绍一个struts包下的action子类,DispatchAction。
DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。
DispatchAction中主要包括以下几个方法:
protected ActionForward dispatchMethod
protected java.lang.reflect.Method getMethod
protected java.lang.String getMethodNameDispatchAction在配置上与标准的Action稍有不同,就是要在Action配置中多一个parameter属性,这个属性将指导DispatchAction找到对应的方法,例如这样配置:
<action path="/saveSubscription" type="org.apache.struts.actions.DispatchAction" name="subscriptionForm" scope="request" input="/subscription.jsp" parameter="method"/>
parameter的属性值是可以任意起的,只要你记得在传参数的时候统一就可以了。比如我写了一个类似这样的Action,它继承自DispatchAction类,包含了三个操作方法,有Add(),Update(),Delete()。当我想要调用这个Action的Update操作时,提交的URL应该类似这样的:
saveSubscription.do?method=Update
就是这么简单,不过非常方便我们程序员了,开发中我感觉的确省了好多代码,至少以前的三个类文件变成了现在一个类了,而且在后期维护的时候感觉也是方便很多。
需要注意的是:在调用DispatchAction的时候method参数是不能为空的,如果空,DispatchAction会调用unspecified方法并抛出异常。
另外一种就是在jsp页面加入一个隐藏域
<input type="hidden" name="oparator" value="getFangwuByUid" />
然后用表单提交 那么 Struts xml配置文件中就改成
<action path="/getFangwu" name="fangwuForm"
type="com.zf_sh.action.FangWuAction" parameter="oparator">
配置文件中的parameter 值就是jsp页面隐藏域的值
其他的和Action的配置没有太大的区别 这里的名字是随便取的
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
1. **创建DispatchAction类**:首先,你需要继承自org.apache.struts.actions.DispatchAction,创建一个新的Action类。在这个类中,你需要定义一系列处理特定业务的方法,这些方法名将对应请求中的参数。 ```java ...
1. **配置Struts DispatcherAction**:在Struts的配置文件(struts-config.xml)中,我们需要定义一个DispatchAction,每个方法对应一个具体的业务操作。例如,我们可以定义两个方法,一个用于获取总记录数,另一个...
Struts DispatchAction是一个在Struts框架中非常重要的概念,它是一种控制器组件,用于处理来自用户的请求并调度到相应的业务逻辑方法。在Struts框架中,DispatcherAction是Action类的一个子类,它的主要作用是实现...
1. **配置struts-config.xml**:首先,在`struts-config.xml`中为`DispatchAction`创建一个配置项,指定它的类路径和映射URL。例如: ```xml ``` 2. **实现DispatchAction**:接下来,你需要创建一个继承...
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
标题提到的"Struts中等同于DispatchAction类方法"是指在Struts框架中,如何模拟`DispatchAction`的行为,即如何通过URL参数调用Action类的不同方法。在传统的`DispatchAction`中,我们通常会在子类中定义多个方法,...
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
配置`DispatchAction`通常需要在struts-config.xml文件中定义一个action元素,并设置其class属性为`com.opensymphony.xwork DispatchAction`(或在Struts 1中为`org.apache.struts.actions.DispatchAction`)。...
1. **Struts标签库**: Struts标签库提供了丰富的HTML和逻辑标签,使得开发者可以更方便地在JSP页面中进行UI开发。例如,`<s:textfield>`用于创建输入字段,`<s:submit>`用于提交表单,而`<s:iterator>`则用于遍历...
- **分发Action**:`org.apache.struts.actions.DispatchAction`,允许根据不同的参数执行不同的方法。 - **转发Action**:`org.apache.struts.actions.ForwardAction`,用于隐藏JSP路径。 - **流下载Action**:`org...
### Struts1.x 技术课程讲解 #### 一、Struts1.x 概述 **Struts1.x** 是一款基于 Java Servlet 和 JSP 技术的企业级 Web 应用开发框架,它实现了 Model-View-Controller (MVC) 设计模式。此框架旨在简化 Web 应用...
在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...
4. **DispatchAction**:Struts1中的一个特殊Action,支持方法调度。 5. **FormFile**:用于封装文件上传数据的对象。 6. **HttpServletRequest** 和 **HttpServletResponse**:分别代表HTTP请求和响应对象。 #### ...
5. DispatchAction:Struts1提供的一种特殊Action,它将一个请求分发到多个子方法,提高代码可维护性。 二、主要组件详解 1. Controller:在Struts1中,Controller由StrutsServlet和ActionServlet实现,它们负责...
Struts 1 是一个经典的Java Web开发框架,它主要用于构建基于MVC(Model-View-Controller)模式的应用程序。在Struts 1中,标签库是实现视图层与控制器层交互的重要工具,使得开发者可以方便地在JSP页面中处理用户...
首先,Struts1的核心概念包括Action、ActionForm、ActionMapping和DispatchAction等。Action是处理用户请求的业务逻辑组件,它接收并处理由控制器转发的请求;ActionForm则用于封装表单数据,是Action和视图之间数据...
struts1学习资料:里面包含struts源码工程 ActionServlet DispatchAction Action LookUpDispatchAction的用法 还包含html logic bean tiles标签的详细使用方法和validate验证框架的具体案例
1. **创建子类**:首先,你需要创建一个继承自` DispatchAction `的Java类。在这个类中,你可以定义自己的业务逻辑方法,比如`executeSave()`、`executeDelete()`等。 ```java public class MyDispatchAction ...