`

DispatchAction类

阅读更多

在Struts中你要尽可能的不用Action类,因为他们让你的项目变得臃肿,你可以使用org.apache.struts.actions.DispatchAction类来完成业务逻辑所需要的相关操作集中到一个Action类中,在继承DispatchAction后,你不再是重新定义execute()方法,而是编写你自己的业务方法,execute()方法在DispatchAction抽象类定义。

例如我们可以继承DispatchAction来定义一个AccountAction,在当中集中管理一些与账号相关的操作,如下:


package onlyfun.caterpillar;                                                                               
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*;                                                                                 
public class AccountAction extends DispatchAction {
   
public ActionForward login(ActionMapping mapping,                             
ActionForm form,                               
HttpServletRequest request,                               
HttpServletResponse response)     throws Exception {         // login相关的操作         ......     }
                                                                                   
public ActionForward logout(ActionMapping mapping,                               
ActionForm form,                                 
HttpServletRequest request,                                 
HttpServletResponse response)     throws Exception {         // logout相关的操作         ......     }

    public ActionForward method1(ActionMapping mapping,                                 
ActionForm form,                               
HttpServletRequest request,                                 
HttpServletResponse response)     throws Exception {         // method1相关的操     ......     }     .....}

我们不再重新定义execute()方法,而是定义我们自己的login()、logout()等方法,这些方法接收与execute()相同的参数,并且也传回ActionForward对象。使用DispatchAction时,我们要在struts-config.xml定义:

path="/account"           
type="onlyfun.caterpillar.AccountAction"             
parameter="method"             
name="userForm">                           
name="greeting"               
path="/login/greeting.jsp"/>       

主要就是在parameter的属性上,我们指定以method请求参数来指定我们所要使用的方法,例如下面的网址将会执行AccountAction的login()方法:http://localhost:8080/HelloStruts/account.do?method=login&name=caterpillar&password=1234注意在请求参数中,我们包括了method=login来指定执行login()方法,同样的,如果你要执行logout()方法,则如下

分享到:
评论

相关推荐

    Struts中等同于DispatchAction类方法

    标题提到的"Struts中等同于DispatchAction类方法"是指在Struts框架中,如何模拟`DispatchAction`的行为,即如何通过URL参数调用Action类的不同方法。在传统的`DispatchAction`中,我们通常会在子类中定义多个方法,...

    struts+oracle实现DispatchAction类

    在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...

    struts中dispatchAction用法

    1. **创建DispatchAction类**:首先,你需要继承自org.apache.struts.actions.DispatchAction,创建一个新的Action类。在这个类中,你需要定义一系列处理特定业务的方法,这些方法名将对应请求中的参数。 ```java ...

    DispatchAction

    `DispatchAction`是由Apache Struts框架提供的一个基础类,它扩展了`Action`类。它的主要功能是将一个HTTP请求路由到多个方法,而不是只调用一个单一的方法来处理所有的请求。`DispatchAction`通过请求参数(通常是...

    DispatchAction实例

    在Struts框架中,`DispatchAction`是一个非常重要的组件,它是Struts提供的一个扩展自`Action`类的抽象类,主要用于处理多个请求方法的情况。在实际的Web应用程序开发中,通常一个URL对应一个Action,而`...

    java面试过程中遇到的问题总结

    DispatchAction 的 parameter 属性是给 DispatchAction 使用的,你的类要继承 DispatchAction 类,而不是普通的 Action,Action 只会执行 execute 方法,DispatchAction 会根据 parameter 的值执行特定的方法。...

    struts DispatchAction

    总之,Struts DispatchAction是Java Web开发中一种有效的请求分发机制,它允许在一个Action类中组织和管理多个业务处理方法,提高了代码的可读性和可维护性。然而,随着技术的发展,如Struts2的出现,开发者可以选择...

    速动画教程系列第13集

    5. **优点与局限性**:DispatchAction简化了代码结构,使得每个方法可以专注于单一的业务操作,但随着应用复杂度增加,DispatchAction类可能变得庞大,维护起来较为困难。这也是为什么在Struts 2中,引入了更灵活的...

    struts_dispacthaction_usermgr

    1. 定义Action的路径,将它映射到DispatchAction类。 2. 使用`parameter`属性指定用于选择方法的请求参数。 3. 对于每个处理方法,定义一个子Action,指定该方法的名称作为`action-class`的值,并设置`parameter`为...

    Struts、Spring、Hibernate、SSH框架总结

    使用DispatchAction时,需要扩展DispatchAction类,并为每个业务操作定义特定的方法,这些方法将根据请求参数进行调用。 Spring是一个全面的后端应用框架,不仅支持MVC模式,还提供了依赖注入(DI)、面向切面编程...

    DispatchAction、LookupDispatchAction、SwitchAction的应用

    **DispatchAction** 是 Struts 框架中一个非常有用的类,它位于 `org.apache.struts.actions` 包中。其核心作用是允许将多个原本需要独立 Action 处理的任务合并到一个 Action 中进行处理,从而简化了 Action 的管理...

    Struts1 控制器组件和动态表单详解

    **DispatchAction类**: DispatchAction使得处理多个业务逻辑更加灵活。例如,我们可以创建一个删除已点菜品的方法: ```java public ActionForward doDelPrepareVegetables(ActionMapping arg0, ActionForm arg1, ...

    Struts+Hibernate的高级功能

    2. **DispatchAction类**:DispatchAction是Struts的一个扩展,它允许一个Action类处理多个请求,通过不同的方法来响应不同的请求路径,增强了Action类的灵活性。 3. **动态ActionForm**:ActionForm是Struts中用于...

    Struts(DispatchAction) + 存储过程 => 实现分页效果

    DispatchAction是Struts框架中的一个动作类,用于处理用户的请求并转发到相应的业务逻辑。在这个场景中,我们将探讨如何结合DispatchAction和存储过程来实现分页效果。 首先,理解分页的基本概念。分页是当数据量过...

    java试题(Hibernate,j2ee )

    正确** — 继承自 DispatchAction 类。在 Struts 中,通常通过继承 `DispatchAction` 来实现更灵活的方法调用。 - **d. 错误** — 在 Struts 配置文件中直接配置得到。ActionBean 通常通过继承特定的类来实现,而...

    Struts 之 DispatchAction

    `DispatchAction`是Struts提供的一个扩展自`Action`类的预定义动作,它的主要目的是通过不同的方法来处理来自客户端的请求,而不是像标准的`Action`那样只有一个处理所有请求的方法。这种设计使得代码结构更清晰,更...

    SSH整合继承DispatchAction的简单例子

    DispatchAction是Struts中的一个抽象类,它是Struts MVC模式中的Controller部分。当一个HTTP请求到达时,Struts会根据配置的ActionMapping找到对应的Action执行。DispatchAction允许我们在一个Action类中定义多个...

    利用struts标签,dispatchAction,实现增删改查

    首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据请求参数的不同,调用不同的方法来处理请求。这种设计使得Action类可以更加模块化,每个方法对应一种特定的操作,如添加、删除、更新或查询。 ...

    深入解析Java的Struts框架中的控制器DispatchAction

    DispatchAction是Struts提供的一个扩展Action类,它允许在一个Action类中实现多个业务处理方法,从而解决了创建大量Action类的问题。通常,一个Action类只有一个execute()方法,但通过DispatchAction,我们可以根据...

    DisapatchAction测试和RequestProcessor控制器类

    这里我们将深入探讨这两种控制器类的工作原理、用途以及如何进行测试。 首先,`DisapatchAction`(通常拼写为`DispatchAction`,可能是输入错误)源自Struts框架,它是一个基于MVC(模型-视图-控制器)设计模式的...

Global site tag (gtag.js) - Google Analytics