`

Struts1 DispatchAction实现一个action处理多个请求

阅读更多
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用法

    DispatchAction是Struts提供的一个可扩展的Action类,它允许开发者将一个单一的Action类拆分成多个子方法,每个子方法处理特定的业务逻辑,从而提高了代码的组织性和可维护性。 DispatchAction的工作原理是通过...

    struts DispatchAction

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

    struts+oracle实现DispatchAction类

    默认情况下,Struts的Action只有一个execute方法,但`DispatchAction`允许我们将请求映射到多个方法,每个方法对应不同的业务操作。这样可以使得代码结构更加清晰,易于维护。 配置`DispatchAction`通常需要在...

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

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

    struts1.2实现计算器示例

    1. **Action类**:这是`DispatchAction`的子类,包含了多个处理不同计算操作的方法,如加法、减法、乘法和除法。每个方法处理特定的计算请求,然后将结果存储在`ActionForm`对象中,供视图层使用。 2. **ActionForm...

    Struts中等同于DispatchAction类方法

    在早期的Struts版本中,`DispatchAction`类是一个核心组件,它允许我们通过单一的Action类处理多个请求,通过在请求URL中指定不同的方法名来调用不同的业务逻辑。 标题提到的"Struts中等同于DispatchAction类方法...

    DispatchAction

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

    struts1实现文件上传

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

    DispatchAction实例

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

    菜鸟学struts1必备 API

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

    struts1_详解

    - **多模块**:在一个项目中可以有多个独立的功能模块,每个模块都有自己的`struts-config.xml`配置文件。 - **模块间的通信**:通过共享数据源或使用Struts提供的机制进行跨模块的数据传递。 #### 六、总结 ...

    struts 1的标签的用法详细

    扩展自`Action`,通过子类的`execute()`方法实现多方法映射,允许每个请求映射到不同的处理方法。 #### 4. LookupDispatchAction 与`DispatchAction`类似,但提供了更灵活的请求参数到方法映射方式,通常用于基于...

    Struts Struts1例子Struts注意事项

    而DispatchAction则是一种特殊的Action,它可以处理多个请求,提高了代码的复用性。 接下来,我们通过一个简单的例子来了解Struts1的应用。假设我们要创建一个用户登录的功能。首先,创建一个名为LoginForm的...

    java-struts1

    6. DispatchAction:一种特殊的Action,它可以将一个请求分发到多个子Action,增强代码的可复用性。 二、Struts1的工作流程 1. 用户发起HTTP请求到服务器。 2. ActionServlet拦截请求,根据struts-config.xml配置...

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

    3. **Action组件**: Action是Struts1中的业务逻辑控制器,它负责处理一个具体的业务任务。开发者可以根据需要创建Action的子类,覆盖execute方法以实现业务逻辑。对于更复杂的情况,比如一个表单中有多个提交按钮,...

    struts应用举例2

    4. DispatchAction:一种特殊的Action,用于处理多个操作的场景,可以将请求分发到不同的方法。 5. ActionServlet:Struts的核心Servlet,负责读取配置文件,初始化框架,并处理请求。 三、Struts配置文件 1. ...

    SSH整合继承DispatchAction的简单例子

    例如,你可以有一个处理用户登录的方法,另一个处理用户注册的方法,它们都封装在同一个Action中。 配置文件是SSH整合的关键部分。在Struts配置文件(struts-config.xml)中,你需要定义ActionMapping,指定URL路径...

    Struts1.x其它文本编辑器使用SQL2005.rar

    - DispatchAction:Struts1.x中的一种扩展Action,可以处理多个请求方法,每个方法对应一个特定的操作。 - ActionForm:用户的输入数据会被封装到ActionForm对象中,然后传递给Action处理。 - Action Mapping:...

Global site tag (gtag.js) - Google Analytics