DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。
DispatchAction中主要包括一下几个方法:
protected ActionForward dispatchMethodprotected java.lang.reflect.Method getMethodprotected java.lang.String getMethodName
DispatchAction在配置上于标准的Action稍有不同,就是要在Action配置中多一个parametr属性,这个属性将指导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应该类似这样的:
http://localhost:8080/myapp/saveSubscription.do?method=update
就是这么简单,不过非常方面我们程序员了,开发中我感觉的确省了好多代码,至少以前的三个类文件变成了现在一个类了,而且在后期维护的时候感觉也是方便很多。
需要注意的是:在调用DispatchAction的时候method参数是不能为空的,如果空,DispatchAction会调用unspecified方法并抛出异常。
分享到:
相关推荐
1. **创建DispatchAction类**:首先,你需要继承自org.apache.struts.actions.DispatchAction,创建一个新的Action类。在这个类中,你需要定义一系列处理特定业务的方法,这些方法名将对应请求中的参数。 ```java ...
标题提到的"Struts中等同于DispatchAction类方法"是指在Struts框架中,如何模拟`DispatchAction`的行为,即如何通过URL参数调用Action类的不同方法。在传统的`DispatchAction`中,我们通常会在子类中定义多个方法,...
总之,Struts DispatchAction是Java Web开发中一种有效的请求分发机制,它允许在一个Action类中组织和管理多个业务处理方法,提高了代码的可读性和可维护性。然而,随着技术的发展,如Struts2的出现,开发者可以选择...
默认情况下,Struts的Action只有一个execute方法,但`DispatchAction`允许我们将请求映射到多个方法,每个方法对应不同的业务操作。这样可以使得代码结构更加清晰,易于维护。 配置`DispatchAction`通常需要在...
`DispatchAction`是由Apache Struts框架提供的一个基础类,它扩展了`Action`类。它的主要功能是将一个HTTP请求路由到多个方法,而不是只调用一个单一的方法来处理所有的请求。`DispatchAction`通过请求参数(通常是...
2. **实现DispatchAction**:接下来,你需要创建一个继承自`org.apache.struts.actions.DispatchAction`的类。例如,我们可以创建`YourDispatchAction.java`: ```java public class YourDispatchAction extends ...
在Struts框架中,`DispatchAction`是一个非常重要的组件,它是Struts提供的一个扩展自`Action`类的抽象类,主要用于处理多个请求方法的情况。在实际的Web应用程序开发中,通常一个URL对应一个Action,而`...
首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据请求参数的不同,调用不同的方法来处理请求。这种设计使得Action类可以更加模块化,每个方法对应一种特定的操作,如添加、删除、更新或查询。 ...
- **DispatchAction**: 是Struts提供的另一种Action类型,它支持在一个Action类中定义多个业务方法,每个方法都可以处理不同的请求。 2. **实现方式**: - **普通Action**: 实现`Action`接口,重写`execute()`方法...
DispatchAction是Struts框架中的一个动作类,用于处理用户的请求并转发到相应的业务逻辑。在这个场景中,我们将探讨如何结合DispatchAction和存储过程来实现分页效果。 首先,理解分页的基本概念。分页是当数据量过...
- 创建一个 `MyLookupDispatchAction` 类,继承自 `LookupDispatchAction`。 - 在类中定义如 `doSave()`, `doLoad()`, `doUpdate()` 等方法,分别处理保存、加载和更新操作。 - 在 `struts-config.xml` 文件中...
Struts框架中所有Action类都继承自`org.apache.struts.action.Action`类。这个基类提供了处理HTTP请求的基本功能,比如执行业务逻辑并返回一个`ActionForward`对象来指定下一步的流程。Action类类似于Servlet,但在...
为了使用 **DispatchAction**,首先需要继承该类并实现具体的业务逻辑方法。例如: ```java import org.apache.struts.actions.DispatchAction; public class ArticleAction extends DispatchAction { /** * ...
DispatchAction继承自Struts的基础Action类,它通过一个名为`dispatch()`的方法来决定哪个方法应该处理特定的请求。这个方法会根据请求参数(通常是请求路径或请求参数中的一个属性)来选择并调用对应的方法。例如...
2. Action:处理请求的主要类,继承自org.apache.struts.action.Action。重写execute()方法来执行特定的业务逻辑。 3. ActionMapping:包含关于Action的信息,如Action的类名、路径等。可以通过ActionMapping对象...
例如,如果我们有一个UserAction类,它继承自DispatchAction,我们可以为增删改查操作分别创建list(), add(), delete(), update()方法。在struts-config.xml配置文件中,我们会为UserAction配置一个路径,但不指定...
用户在计算器界面上输入数字,选择运算符,点击按钮后,Struts框架会处理这些请求,调用相应的Action方法,然后将结果返回到显示结果的JSP页面。 5. **JSTL或EL表达式**:在JSP页面中,可以使用JavaServer Pages ...
在调用Action的execute方法之前,RequestProcessor会执行一些预处理任务。开发者可以通过扩展RequestProcessor来实现特定的处理逻辑,例如在处理请求前后添加额外的操作。 3. **Action组件**: Action是Struts1中的...
例如,在计算器应用中,我们可以创建一个CalcAction,它继承自DispatchAction,并定义doAdd、doSubtract、doMultiply和doDivide等方法,分别对应加、减、乘、除操作。在struts-config.xml中配置CalcAction,并指定...