`

Struts1 DispatchAction

阅读更多

原文地址:http://www.iteye.com/post/437174

在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定义: 

  

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

分享到:
评论

相关推荐

    struts中dispatchAction用法

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

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

    1. **配置Struts DispatcherAction**:在Struts的配置文件(struts-config.xml)中,我们需要定义一个DispatchAction,每个方法对应一个具体的业务操作。例如,我们可以定义两个方法,一个用于获取总记录数,另一个...

    struts DispatchAction

    Struts DispatchAction是一个在Struts框架中非常重要的概念,它是一种控制器组件,用于处理来自用户的请求并调度到相应的业务逻辑方法。在Struts框架中,DispatcherAction是Action类的一个子类,它的主要作用是实现...

    Struts 之 DispatchAction

    1. **配置struts-config.xml**:首先,在`struts-config.xml`中为`DispatchAction`创建一个配置项,指定它的类路径和映射URL。例如: ```xml ``` 2. **实现DispatchAction**:接下来,你需要创建一个继承...

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    Struts_DispatchAction的使用

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证的示例

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。

    Struts中等同于DispatchAction类方法

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

    Struts2常用标签&DispatchAction.rar

    03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar

    struts+oracle实现DispatchAction类

    配置`DispatchAction`通常需要在struts-config.xml文件中定义一个action元素,并设置其class属性为`com.opensymphony.xwork DispatchAction`(或在Struts 1中为`org.apache.struts.actions.DispatchAction`)。...

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

    1. **Struts标签库**: Struts标签库提供了丰富的HTML和逻辑标签,使得开发者可以更方便地在JSP页面中进行UI开发。例如,`<s:textfield>`用于创建输入字段,`<s:submit>`用于提交表单,而`<s:iterator>`则用于遍历...

    struts1.x技术课程讲解.pdf

    ### Struts1.x 技术课程讲解 #### 一、Struts1.x 概述 **Struts1.x** 是一款基于 Java Servlet 和 JSP 技术的企业级 Web 应用开发框架,它实现了 Model-View-Controller (MVC) 设计模式。此框架旨在简化 Web 应用...

    DispatchAction

    在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...

    struts1实现文件上传

    4. **DispatchAction**:Struts1中的一个特殊Action,支持方法调度。 5. **FormFile**:用于封装文件上传数据的对象。 6. **HttpServletRequest** 和 **HttpServletResponse**:分别代表HTTP请求和响应对象。 #### ...

    菜鸟学struts1必备 API

    5. DispatchAction:Struts1提供的一种特殊Action,它将一个请求分发到多个子方法,提高代码可维护性。 二、主要组件详解 1. Controller:在Struts1中,Controller由StrutsServlet和ActionServlet实现,它们负责...

    struts 1的标签的用法详细

    Struts 1 是一个经典的Java Web开发框架,它主要用于构建基于MVC(Model-View-Controller)模式的应用程序。在Struts 1中,标签库是实现视图层与控制器层交互的重要工具,使得开发者可以方便地在JSP页面中处理用户...

    Struts Struts1例子Struts注意事项

    首先,Struts1的核心概念包括Action、ActionForm、ActionMapping和DispatchAction等。Action是处理用户请求的业务逻辑组件,它接收并处理由控制器转发的请求;ActionForm则用于封装表单数据,是Action和视图之间数据...

    struts1深入学习

    struts1学习资料:里面包含struts源码工程 ActionServlet DispatchAction Action LookUpDispatchAction的用法 还包含html logic bean tiles标签的详细使用方法和validate验证框架的具体案例

    DispatchAction实例

    1. **创建子类**:首先,你需要创建一个继承自` DispatchAction `的Java类。在这个类中,你可以定义自己的业务逻辑方法,比如`executeSave()`、`executeDelete()`等。 ```java public class MyDispatchAction ...

Global site tag (gtag.js) - Google Analytics