1.Action,其它类型的Action的父类,只能实现其中的 execute()方法来处理业务,缺点是,一个Action只能处理一个业务,不能自定义处理多个业务,所以一般很少用。
MappingDispatchAction为每个不同的处理方法都要在struts-config.xml配置对应的action而DispatchAction
只需要配置一个然后利用给parameter字段赋值来区分。从我做项目的经验来说,使用MappingDispatchAction恐怕是
最方便最直接了,因为它最容易调试。因为根据form提交的action的不同就可以区分不同的方法(例如增加,删除,修
改)但是缺点就是会是配置文件的内容变多,而DispatchAction方法的配置看上去比较简洁,每种方法各有千秋。
5.DispatcherAction 类
DispatcherAction:能够在同一个 Action 类中完成一组相关的业务操作,以达到减少重复编程,使程序更加便于维护。
创建一个扩展 DispatchAction 类的子类,不必覆盖 excute() 方法,而是创建一些实现业务逻辑的方法,这些业务逻辑方法都应该和 excute() 方法具有相同的方法签名,即它们的参数和返回类型都应该相同,此外也应该声明抛出Exception 异常.
在配置 DispatchAction 类时,需要把 parameter 属性的值设置为”method”.
把 parameter 的属性配置为”method”后,当用户请求访问 DispatchAction 时,应该提供 method 请求参数.例如:
http://localhost:9090/test/test?method=add
<action>的parameter属性:指定 Action 的配置参数。在Action类的 excute() 方法中,可以调用 ActionMapping 对象的 getParameter() 方法来读取配置参数
6.LookupDispatchAction 类
LookupDispatchAction 类:DispatcherAction 的子类,在该类中可以定义多个业务方法,适用于一个表单中有多个提交按钮,且这些按钮又都有一个共同名字的场合。
它与DispatchAction类的作用差不多,唯一不同的是:这个类是通过资源包中的key作为请求参数来进行对方法的映射,而DispatchAction是通过请求参数来选择方法.
LookupDispatchAction的用法:
用MessageResource将按钮的文本和ResKey相关联
在Action配置中一个parametr属性,属性值与submit按钮的property属性值相同,这个属性可以指定执行LookupDispatchAction中对应的方法
继承LookupDispatchAction,重写getKeyMethodMap()方法, 将ResKey和MethodName对应起来
DispatchAction 类使用请求参数的值确定调用哪种方法,而LookupDispatchAction类利用请求参数值,反向查询资源绑定,并将它与类中的一种方法匹配,这两种方法有异曲同工之妙。
7.MappingDispatchAction 类
该类是 DispatchAction的子类,用于将相关的请求组织到一个Action之中。
MappingDispatchAction的用法:
将一个 MappingDispatchAction 类根据不同的请求进行多次声明,其中path属性因请求的不同而不同,并为每个 action 添加 parameter 属性来指定相同 Action 类处理不同请求的方法名
创建一个扩展 MappingDispatchAction 类的子类,不必覆盖 excute() 方法,而是创建一些实现业务逻辑的方法,这些业务逻辑方法都应该和 excute() 方法具有相同的方法签名,即它们的参数和返回类型都应该相同,此外也应该声明抛出Exception 异常.
与DispatcherAction的区别:
MappingDispatcherAction:当想要为相同的Action定义多个表单操作处理器的时候,使用它
DispatcherAction:如果基于某种理由不想要定义多个表单操作处理器的时候,使用它
分享到:
相关推荐
你需要创建一个Action类,继承自`ActionSupport`或自定义的Action父类,并重写`execute()`方法。Action类可以通过注解或XML配置来绑定请求参数。 3. **Spring框架**:Spring的核心是IoC(Inversion of Control,...
你需要创建一个Action类,它通常会继承自`org.struts2.actionsupport.ActionSupport`或自定义的父类,并且需要实现一些特定的方法,如`execute()`,这个方法是Action的核心,用来处理用户的请求并返回相应的结果。...
1. **定义标签库(Tag Library)**:在项目的src/main/resources目录下创建一个名为struts-tags.tld的文件,这是标签库的定义文件。在这里,我们需要定义标签的名字、显示名称、属性等信息。 2. **创建标签处理类...
针对异常处理,Struts提供了一种优雅的方式,使得开发者可以自定义错误处理机制。在给定的文件中,我们看到了一个基于Struts的异常处理方案,主要涉及两个关键点:自定义异常类和自定义异常处理器。 首先,我们来看...
2. 在 Struts 中最重要的几个类分别是:ActionServlet、Action、ActionForm。 3. 在 Struts 中,可以开发自己的 Action 和 ActionForm,但必须分别继承 Action 和 ActionFactory 两个父类。 4. 从结构上来看,Struts...
Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...
1. **Action 实现**:Struts 1 使用统一的Action接口,而Struts 2允许使用任何Java对象作为Action。 2. **线程安全性**:Struts 1的Action是单例模式,不安全;Struts 2的Action是每次请求创建一个新的实例,线程...
XML解析有哪几种?** 主要有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)三种。 **7. 简述AJAX** AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个...
Struts+Spring+Hibernate实现上传下载 本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本: •Struts 1.2 •Spring 1.2.5 •Hibernate 3.0 本文...
Java面试题涵盖了许多核心概念,以下是对其中几个关键知识点的详细解释: 1. **面向对象的理解**: 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它以对象为中心,强调数据和操作数据的方法...
XML解析主要有以下几种方法: - **DOM (Document Object Model)**:将整个XML文档读入内存并建立树形结构,便于节点的查询和修改。但占用内存较大,适合小文档。 - **SAX (Simple API for XML)**:基于事件驱动...
具体可以通过以下几种方式进行配置: - **一对多 (One-to-Many)**:使用`<one-to-many>`标签来表示父类与子类之间的一对多关系。 - **多对多 (Many-to-Many)**:使用`<many-to-many>`标签来表示两个类之间的多对多...
在论文中,可能会涉及以下几种常见的Java框架: 1. **Spring框架**:这是一个全面的企业级应用开发框架,它支持依赖注入(DI)、面向切面编程(AOP)、数据访问、Web开发等。Spring的注解驱动开发使得代码更加简洁...
8. **Struts框架**:在Struts框架中,Action类的execute方法处理业务逻辑,返回一个String对象,控制权交给result组件。 9. **多线程实现**:创建多线程有两种方式,一是继承Thread类,二是实现Runnable接口。 10....
8. **Struts框架**:在Struts框架中,Action类的execute方法处理业务逻辑,并返回一个String对象,这个字符串决定了控制权将返回到哪个结果组件。 9. **实现多线程**:Java中创建多线程有两种方式:继承Thread类或...
#### 1. 重载与重写的区别 - **重载(Overloading)**:发生在同一个类中,方法名相同但参数列表不同(包括参数的数量、类型或顺序)。返回类型可以不同,但不是判断重载的依据。这允许在一个类中定义多个具有相同...
70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有...