一、用途:通常在一个Action中只能完成一种业务操作,例如用户的增、删、改得放在三个Action 中,但是如果我想把这三个业务都放在一个Action中,想通过URL后跟参数来区分,即通过http://localhost:8080/proj/user.do?method=insert 表示增加
http://localhost:8080/proj/user.do?method=delete 表示删除
http://localhost:8080/proj/user.do?method=alter 表示修改
可见增、删、改是写在 path 为 user的 一个action 这个时候就用到的DispatchAction
二、使用方法
1、创建的 action 继承 DispatchAction
2、创建自己需要的方法,要和action中的execute有相同的参数个数和参数类型
如下例:一个action中有两个方法,add与sub, 它们都与execute有相同的参数个数和参数类型
public class Test1Action extends DispatchAction {
public ActionForward sub(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//SessionContainer a=this.getSessionContainer(request);
System.out.println("+++++++++sub++++++++++++");
return null;
}
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("+++++++++++add+++++++++++");
return null;
}
}
3、在struts.xml中进行配置
<action path="/test1"
type="com.qf.struts.action.Test1Action"
validate="false"
parameter="method" />
4、http://localhost:8080/test/test1.do?method=sub
http://localhost:8080/test/test1.do?method=add
分别测试
action的parameter属性决定了URL后跟的参数变量
三、找不到action的检查方法
1、首先检查action中的方法是否是那四个参数,以及是否 throws 了Exception
2、检查action的配置文件是否配置了parameter 属性。
分享到:
相关推荐
- **9.4 StrutsAction单态陷阱,请谨慎使用全局变量** - 警告了使用全局变量可能带来的问题,并提供了相应的解决策略。 - **9.5 Struts异常处理** - 介绍了Struts框架中的异常处理机制。 #### 第10章 在Struts中...
### Struts的内置Action类 - **Action接口**:所有自定义的Action类都需实现此接口。 - **ActionForm**:用于封装表单数据,通常继承自`ActionForm`类。 - **ActionMapping**:在`struts-config.xml`中配置,包含了...
- **PrebuiltAction类**:提供了一些常用的Action基类,如`DispatchAction`,简化了Action的开发。 #### 六、Struts标记库 - **Struts标记库**:包含了一系列自定义的JSP标签,用于简化页面开发。 - **定制JSP标记...
- **使用预构建的 Action 类**:Struts 提供了一些预定义的 `Action` 类,如 `DispatchAction`,可以简化开发过程。 #### Struts 标记库 - **定制 JSP 标记**:提供了高度定制化的 JSP 标签,如 `<s:text>`、`...
Struts提供了一系列内置Action类,例如: - **ForwardAction**:用于页面跳转。 - **IncludeAction**:用于包含其他资源。 - **DispatchAction**:用于分发请求到不同的方法。 - **LookupDispatchAction**:用于查找...
- **预构建Action类**:提供了一系列预构建的Action类,如`DispatchAction`,可以减少自定义Action的编写工作量。 #### Struts 标记库 - **Struts 标记库** 提供了一系列自定义的JSP标记,用于简化表单处理、页面...
Struts提供了内置的异常处理机制,允许你在struts-config.xml中定义全局和特定Action的异常处理策略。 **8. Struts标签库** Struts提供了丰富的标签库,如logic、bean、html和nested等,简化了JSP页面的编写,增强...
Struts的核心组件包括ActionForm、Action、Controller(DispatchAction或StrutsAction)和配置文件(struts-config.xml)。 二、MyEclipse与Struts集成 MyEclipse集成了对Struts的全方位支持,包括快速创建Struts...
- **StrutsAction单态陷阱**:提醒开发者注意StrutsAction的单态性可能导致的问题,并给出了避免陷阱的方法。 - **Struts异常处理**:介绍了如何在Struts应用程序中处理各种异常情况,提高系统的稳定性和用户体验。 ...
- **预构建Action类**:提供了一系列预构建的Action类,如`DispatchAction`,可以减少代码量,提高开发效率。 #### 五、Struts标记库 Struts提供了一套丰富的标记库,用于简化JSP页面的编写,主要包括: - **Bean...
本章主要讨论Struts框架中的高级特性,包括常用Action的使用、动态ActionForm以及验证框架。 首先,我们来看看Struts中的两种常用Action: 1. **ForwardAction**: ForwardAction的作用是定义一个逻辑路径到具体的...
在Struts框架中,核心组件包括Action、Form Bean、Action Mapping、Controller Servlet(DispatchAction)以及JSP视图。以下是这些组件的具体解释: 1. **Action**:Action是业务逻辑处理的中心,负责接收请求,...
1. Actions:包含了Struts的Action类和其他相关类,它们负责处理控制器逻辑。 2. Config:包含与Struts配置相关的类,如ActionConfig和actionMapping,这些类用于定义和管理应用的配置信息。 3. Taglib:包含了...
Struts提供了一些预构建的Action类,如`DispatchAction`,可以减少开发过程中编写自定义Action的工作量。 #### 四、Struts标记库 **4.1 定制JSP标记** Struts提供了丰富的标记库,可以用于创建动态页面,包括: -...
2. **DispatchAction类**:DispatchAction是Struts的一个扩展,它允许一个Action类处理多个请求,通过不同的方法来响应不同的请求路径,增强了Action类的灵活性。 3. **动态ActionForm**:ActionForm是Struts中用于...
- **Struts1**:Action类必须继承自特定的基类,如`Action`或`DispatchAction`,并且需要实现特定的方法(如`execute`)来处理请求。 - **Struts2**:Action可以是任意的Java对象(即POJO),这极大地简化了开发...
- Struts 1的Action需要实现`Action`接口,而Struts 2的Action通常继承自`ActionSupport`类。 2. **Action的生命周期不同**: - Struts 1的Action是多例的,每次请求都会创建一个新的Action实例;而Struts 2的...
1. **基础概念**:了解Struts框架的核心概念,包括Action、Form Bean、Controller(DispatchAction)以及Tiles等组件,这些都是构建Struts应用的基础。 2. **配置文件详解**:详述struts-config.xml文件的各个元素...