MappingDispatchAction
DispatchAction虽然将相同或者类似的功能模块集中到了一个类中了,易于代码维护,也大大减少了配置文件中配置标签的长度,但是他必需要求开发人员在请求中再带上一个参数,这就额外的增加了很多麻烦,维护起来不方便,
MappingDispatchAction不用带上这样的参数,只需要给其一个指定的路径就可以找到该方法
在代码的实现上
MappingDispatchAction和DispatchAction没有什么区别,完全一样的代码,只需继承两个不同的类分别是MappingDispatchAction和DispatchAction
他们同样不能覆盖父类的execute()方法
在配置上
DispatchAction路径所能对应的只能达到类级别,还需要通过request对象传入的一个parameter的值来确定方法,
<action path="/dispatch/system/service"
type="com.arney.sms.struts.SystemAction" parameter="method">
<forward name="logout" path="/pages/dispatch/login.jsp"
redirect="true" />
<forward name="success"
path="/pages/dispatch/login-success.jsp" redirect="true" />
<forward name="fail" path="/pages/dispatch/login-fail.jsp" />
</action>
MappingDispatchAction将不同的路径(action 标签中 path属性来指定)对应到不同的方法级别精度已经达到方法级别具体的方法只需要读配置文件里面的parameter值就可以了
<action path="/mapping/login"
type="com.arney.sms.struts.MappingSystemAction" parameter="login">
<forward name="success"
path="/pages/mapping/login-success.jsp" redirect="true" />
<forward name="fail" path="/pages/mapping/login-fail.jsp" />
</action>
<action path="/mapping/logout"
type="com.arney.sms.struts.MappingSystemAction" parameter="logout">
<forward name="logout" path="/pages/mapping/login.jsp"
redirect="true" />
</action>
在功能方面
DispatchAction中如果不同页面传过来的请求里面有多个表单,但是一个action标签只能指定一个FormAction来验证,这样明显存在不灵活的地方
MappingDispatchAction对于不同的功能使用不同的action标签来指定,这样就可以灵活地使用不同的FormAction了
分享到:
相关推荐
`MappingDispatchAction`是Struts2框架中的一种特殊Action,用于处理多个请求映射到同一个Action的情况。在Struts2中,Action是处理用户请求的核心组件,而`MappingDispatchAction`则是实现请求分发的一种机制,它...
Struts中MappingDispatchAction的用法Struts中MappingDispatchAction的用法Struts中MappingDispatchAction的用法
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...
- **定义**:`MappingDispatchAction`同样是Struts框架提供的一种特殊Action,它可以根据请求参数动态映射到不同的Action处理类。 - **应用场景**:当一个页面需要通过同一个Action但映射到不同逻辑处理时使用,...
基于MVC模式,控制层由Struts的MappingDispatchAction组件提供控制流程,业务逻辑和事务管理由javaBean实现,数据库访问使用Hibernate技术,表现层采用JSP组件,增强了系统的健壮性和可扩展性。 分为用户信息管理...
本文将深入探讨三种不同的`Action`实现方式:继承自`Action`、继承自`DispatchAction`以及继承自`MappingDispatchAction`。每种方式都有其独特的应用场景和配置方法。 #### 一、继承自Action 如果希望自定义的类...
在给出的文件中,我们看到了如`SwitchAction`、`MappingDispatchAction`等Action类,这些都是Struts中用于处理用户请求的核心组件。`SwitchAction`通常用于根据不同的条件或参数选择不同的业务逻辑路径,而`...
- **MappingDispatchAction**:允许开发者为每个请求参数定义不同的处理方法。 - **LookUpDispatchAction**:与 DispatchAction 类似,但更灵活,可以动态地确定方法名。 2. **ActionServlet**:Struts1.x 的核心...
- Struts框架中的Action是处理用户请求的核心组件,有多种类型,如普通Action、SwitchAction、IncludeAction、ForwardAction、DispatchAction、MappingDispatchAction,每种都有特定的用途。 3. **Hibernate HQL与...
1. **Action类**:与方式一类似,但`UserAction`可以继承任意Action,如`MappingDispatchAction`,并定义私有变量`UserService us`,通过setter方法注入。 2. **Action配置**:在`struts_config.xml`中,`action`...
- 控制器配置:使用`MappingDispatchAction`作为控制器,处理请求转发。 - 验证规则配置:通过`ValidatorPlugIn`插件进行表单验证规则的配置。 - **Action配置**:定义具体的Action类及其映射路径。 - **资源...
- **MappingDispatchAction**:类似于 DispatchAction,但使用更复杂的映射规则来确定要执行的方法。 - **防止表单重复提交**:通过使用令牌(token)机制来防止用户的重复提交操作。 - **Struts 验证框架**:...
- **使用MappingDispatchAction:** 动态选择Action执行。 - **使用LookupDispatchAction:** 支持根据请求参数动态选择Action执行。 - **使用ForwardAction:** 实现简单的页面转发。 - **使用IncludeAction:*...