DispatchAction使用:
页面有以下四个请求:
<html:link action="/user.do?method=add">添加新用户</html:link><br>
<html:link action="/user.do?method=delete">删除用户</html:link><br>
<html:link action="/user.do?method=update">修改用户</html:link><br>
<html:link action="/user.do?method=query">查询用户</html:link><br>
struts-config.xml相应的配置:
<action path="/user"
type="cn.itcast.action.UserAction"
parameter="method">
</action>
UserAction中的代码:
private ActionForward query(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
private ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
private ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
private ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
从上面可知,四个请求交给同一个Action处理(默认应该调用Action的execute方法),但通过在请求url中加入一个属性(method)
该属性名与struts-config.xml中相应Action 的parameter属性值一样 该属性值与对应Action类中某个方法名一样即将该请求交给该方法处理
DispatchAction 的优点:
实行了在同一个 Action 类中完成一组相关的业务操作,以达到减少重复编程,使程序更加便于维护。
DispatchAction 的缺点: 因为多个请求共用一个 action 节点, 所以多个请求使用一个 name 属性, 即多个请求使用一个 ActionForm,
进而使用同样的验证规则, 这在很多时候是不适用的.
MappingDispatchAction使用:
页面有以下四个请求:
<html:link action="/add">添加新用户</html:link><br>
<html:link action="/delete">删除用户</html:link><br>
<html:link action="/update">修改用户</html:link><br>
<html:link action="/query">查询用户</html:link><br>
struts-config.xml相应的配置:
<action path="/add"
type="cn.itcast.action.UserAction"
parameter="add"></action>
<action path="/delete"
type="cn.itcast.action.UserAction"
parameter="delete"></action>
<action path="/update"
type="cn.itcast.action.UserAction"
parameter="update"></action>
<action path="/query"
type="cn.itcast.action.UserAction"
parameter="query"></action>
UserAction中的代码:
与上面DispatchAction的UserAction代码一样
从上面可知,它是在 struts-config.xml中action中指定parameter属性,通过该属性值去找相应的处理方法。但它可以共用一个ActionForm,也可不共用。
这样就解决了DispatchAction 的缺点,但却增加了struts-config.xml中的代码量。
所以应根据具体情况选择使用哪个
分享到:
相关推荐
在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...
Struts是Java Web开发中的一款经典MVC框架,它的核心组件之一是DispatchAction,这个组件在...通过学习和分析这些文件,初学者可以更深入地理解Struts中DispatchAction的使用和工作原理,从而更好地进行Java Web开发。
在实际的Web应用程序开发中,通常一个URL对应一个Action,而`DispatchAction`则允许一个Action处理多个不同的请求,每个请求映射到Action中的不同方法,提高了代码的可维护性和组织性。 `DispatchAction`的核心机制...
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
总结来说,"Struts中等同于DispatchAction类方法"是一种在不直接使用`DispatchAction`基类的情况下,通过前端传递方法名并在后端使用反射调用相应方法的技术,以实现多请求映射到单个Action类的多个方法。...
使用DispatchAction的另一个优点是,它可以结合Struts的国际化和主题功能,为不同的用户群体提供定制的视图。此外,通过将Action类中的方法组织成逻辑相关的组,可以更方便地进行权限控制和事务管理。 然而,需要...
为了使用 **DispatchAction**,首先需要继承该类并实现具体的业务逻辑方法。例如: ```java import org.apache.struts.actions.DispatchAction; public class ArticleAction extends DispatchAction { /** * ...
在这个场景中,我们将探讨如何结合DispatchAction和存储过程来实现分页效果。 首先,理解分页的基本概念。分页是当数据量过大时,为提高用户体验,将数据分成若干部分逐页展示的一种技术。在Web应用中,用户可以逐...
在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...
以下是如何配置和使用`DispatchAction`的步骤: 1. **配置struts-config.xml**:首先,在`struts-config.xml`中为`DispatchAction`创建一个配置项,指定它的类路径和映射URL。例如: ```xml ``` 2. **...
通过分析这些文件,你可以更深入地了解SSH整合和DispatchAction的用法。 总的来说,这个例子是一个实用的学习资源,它展示了如何在实际项目中集成SSH框架,并利用DispatchAction实现请求的分发。对于初学者,这是一...
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这对于初学者来说是一个非常实用的学习主题。 首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据...
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
DispatchAction 的 parameter 属性是给 DispatchAction 使用的,你的类要继承 DispatchAction 类,而不是普通的 Action,Action 只会执行 execute 方法,DispatchAction 会根据 parameter 的值执行特定的方法。...
本文将深入解析Struts中的控制器组件,特别是DispatchAction的使用。 在Struts框架中,控制器主要由ActionServlet和Action类组成。ActionServlet作为前端控制器,负责拦截所有HTTP请求,并根据配置文件(struts-...
通过以上分析可以看出,`DispatchAction`、`MappingDispatchAction`和`LookupDispatchAction`都是解决单个Action处理多种业务逻辑的有效手段。其中,`DispatchAction`相对简单直接,适用于处理较为简单的场景;`...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
- Struts框架中的Action是处理用户请求的核心组件,有多种类型,如普通Action、SwitchAction、IncludeAction、ForwardAction、DispatchAction、MappingDispatchAction,每种都有特定的用途。 3. **Hibernate HQL与...
本文将深入探讨三种不同的`Action`实现方式:继承自`Action`、继承自`DispatchAction`以及继承自`MappingDispatchAction`。每种方式都有其独特的应用场景和配置方法。 #### 一、继承自Action 如果希望自定义的类...