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
分享到:
相关推荐
DispatchAction是Struts提供的一个可扩展的Action类,它允许开发者将一个单一的Action类拆分成多个子方法,每个子方法处理特定的业务逻辑,从而提高了代码的组织性和可维护性。 DispatchAction的工作原理是通过...
总之,Struts DispatchAction是Java Web开发中一种有效的请求分发机制,它允许在一个Action类中组织和管理多个业务处理方法,提高了代码的可读性和可维护性。然而,随着技术的发展,如Struts2的出现,开发者可以选择...
默认情况下,Struts的Action只有一个execute方法,但`DispatchAction`允许我们将请求映射到多个方法,每个方法对应不同的业务操作。这样可以使得代码结构更加清晰,易于维护。 配置`DispatchAction`通常需要在...
首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据请求参数的不同,调用不同的方法来处理请求。这种设计使得Action类可以更加模块化,每个方法对应一种特定的操作,如添加、删除、更新或查询。 ...
1. **Action类**:这是`DispatchAction`的子类,包含了多个处理不同计算操作的方法,如加法、减法、乘法和除法。每个方法处理特定的计算请求,然后将结果存储在`ActionForm`对象中,供视图层使用。 2. **ActionForm...
在早期的Struts版本中,`DispatchAction`类是一个核心组件,它允许我们通过单一的Action类处理多个请求,通过在请求URL中指定不同的方法名来调用不同的业务逻辑。 标题提到的"Struts中等同于DispatchAction类方法...
`DispatchAction`是由Apache Struts框架提供的一个基础类,它扩展了`Action`类。它的主要功能是将一个HTTP请求路由到多个方法,而不是只调用一个单一的方法来处理所有的请求。`DispatchAction`通过请求参数(通常是...
4. **DispatchAction**:Struts1中的一个特殊Action,支持方法调度。 5. **FormFile**:用于封装文件上传数据的对象。 6. **HttpServletRequest** 和 **HttpServletResponse**:分别代表HTTP请求和响应对象。 #### ...
在Struts框架中,`DispatchAction`是一个非常重要的组件,它是Struts提供的一个扩展自`Action`类的抽象类,主要用于处理多个请求方法的情况。在实际的Web应用程序开发中,通常一个URL对应一个Action,而`...
5. DispatchAction:Struts1提供的一种特殊Action,它将一个请求分发到多个子方法,提高代码可维护性。 二、主要组件详解 1. Controller:在Struts1中,Controller由StrutsServlet和ActionServlet实现,它们负责...
- **多模块**:在一个项目中可以有多个独立的功能模块,每个模块都有自己的`struts-config.xml`配置文件。 - **模块间的通信**:通过共享数据源或使用Struts提供的机制进行跨模块的数据传递。 #### 六、总结 ...
扩展自`Action`,通过子类的`execute()`方法实现多方法映射,允许每个请求映射到不同的处理方法。 #### 4. LookupDispatchAction 与`DispatchAction`类似,但提供了更灵活的请求参数到方法映射方式,通常用于基于...
而DispatchAction则是一种特殊的Action,它可以处理多个请求,提高了代码的复用性。 接下来,我们通过一个简单的例子来了解Struts1的应用。假设我们要创建一个用户登录的功能。首先,创建一个名为LoginForm的...
6. DispatchAction:一种特殊的Action,它可以将一个请求分发到多个子Action,增强代码的可复用性。 二、Struts1的工作流程 1. 用户发起HTTP请求到服务器。 2. ActionServlet拦截请求,根据struts-config.xml配置...
3. **Action组件**: Action是Struts1中的业务逻辑控制器,它负责处理一个具体的业务任务。开发者可以根据需要创建Action的子类,覆盖execute方法以实现业务逻辑。对于更复杂的情况,比如一个表单中有多个提交按钮,...
4. DispatchAction:一种特殊的Action,用于处理多个操作的场景,可以将请求分发到不同的方法。 5. ActionServlet:Struts的核心Servlet,负责读取配置文件,初始化框架,并处理请求。 三、Struts配置文件 1. ...
例如,你可以有一个处理用户登录的方法,另一个处理用户注册的方法,它们都封装在同一个Action中。 配置文件是SSH整合的关键部分。在Struts配置文件(struts-config.xml)中,你需要定义ActionMapping,指定URL路径...
- DispatchAction:Struts1.x中的一种扩展Action,可以处理多个请求方法,每个方法对应一个特定的操作。 - ActionForm:用户的输入数据会被封装到ActionForm对象中,然后传递给Action处理。 - Action Mapping:...