1.在jsp页面上
前者如下:
<li><a href="./deptAction.do">dept</a></li>
<li><a href="./deptAction.do">dept2</a></li>
后者如下:
<li><a href="./deptAction.do?method=deptPage">dept</a></li>
<li><a href="./deptAction.do?method=deptPage2">dept2</a></li>
2.在struts相应的配置文件上
前者如下:
<action
attribute="deptActionForm"
name="deptActionForm"
path="/deptAction"
parameter="deptPage"
scope="request"
type="org.kingtoon.action.DeptAction"
validate="false">
<forward name="dept" path="/dept.jsp"></forward>
</action>
<action
attribute="deptActionForm"
name="deptActionForm"
path="/deptAction"
parameter="deptPage2"
scope="request"
type="org.kingtoon.action.DeptAction"
validate="false">
<forward name="dept" path="/dept.jsp"></forward>
</action>
后者如下
<action
attribute="deptActionForm"
name="deptActionForm"
path="/deptAction"
parameter="method"
scope="request"
type="org.kingtoon.action.DeptAction"
validate="false">
<forward name="dept" path="/dept.jsp"></forward>
</action>
Action和对应的ActionForm都一样.
为了进一步了解二者的区别,我试着将DispatchAction的用法移植到MappingDispatchAction上,结果出错,信息如下:javax.servlet.ServletException: java.lang.NoSuchMethodException: org.itfuture.www.action.DeptAction.method(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
提示你找不到method方法,很显然,将参数值method当成方法了,进而可以得之:MappingDispatchAction的配置文件里的 parameter的值只能是具体的方法.
由此可看出两者在实现功能上没什么区别,所以笔者目前还不清楚为什么要推出MappingDispatchAction这个类.这只是在开发过程中发现的.可能二者有本质的区别,但至少目前笔者还没发现.也许是考虑到方便不同程序员的使用习惯上吧.可谓开发者良苦用心啊.
分享到:
相关推荐
Struts中MappingDispatchAction的用法Struts中MappingDispatchAction的用法Struts中MappingDispatchAction的用法
与`DispatchAction`不同,`MappingDispatchAction`允许开发者通过XML配置文件来指定请求到方法的映射,而不是硬编码在Action类中。这样,开发者可以根据业务需求自由地定义请求参数与方法的映射关系,提高了代码的...
在不使用`MappingDispatchAction`时,Struts2通常通过Action类的方法名与请求URL路径的后半部分进行匹配,以决定调用哪个方法。例如,如果请求URL是`/myAction.execute`,那么Struts2会尝试找到名为`execute`的方法...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
- `MappingDispatchAction`进一步降低了Action与视图之间的耦合度,因为可以通过配置文件动态地指定不同的处理方法。 - 但是,这也意味着配置文件变得更为复杂,维护成本增加。 **示例代码**: ```xml <!-- struts...
本文将深入探讨三种不同的`Action`实现方式:继承自`Action`、继承自`DispatchAction`以及继承自`MappingDispatchAction`。每种方式都有其独特的应用场景和配置方法。 #### 一、继承自Action 如果希望自定义的类...
- Struts框架中的Action是处理用户请求的核心组件,有多种类型,如普通Action、SwitchAction、IncludeAction、ForwardAction、DispatchAction、MappingDispatchAction,每种都有特定的用途。 3. **Hibernate HQL与...
- **MappingDispatchAction**:类似于 DispatchAction,但使用更复杂的映射规则来确定要执行的方法。 - **防止表单重复提交**:通过使用令牌(token)机制来防止用户的重复提交操作。 - **Struts 验证框架**:...
- **LookUpDispatchAction**:与 DispatchAction 类似,但更灵活,可以动态地确定方法名。 2. **ActionServlet**:Struts1.x 的核心组件,负责初始化框架、接收 HTTP 请求并将请求分发给相应的 Action 类处理。 3. ...
`SwitchAction`通常用于根据不同的条件或参数选择不同的业务逻辑路径,而`MappingDispatchAction`则允许基于请求的URL映射到不同的方法。 其次,Spring框架提供了依赖注入(DI)和面向切面编程(AOP)等功能,帮助...
- **使用DispatchAction:** 可以根据不同的方法调用不同的处理器。 - **使用MappingDispatchAction:** 动态选择Action执行。 - **使用LookupDispatchAction:** 支持根据请求参数动态选择Action执行。 - **...
基于MVC模式,控制层由Struts的MappingDispatchAction组件提供控制流程,业务逻辑和事务管理由javaBean实现,数据库访问使用Hibernate技术,表现层采用JSP组件,增强了系统的健壮性和可扩展性。 分为用户信息管理...
1. **Action类**:与方式一类似,但`UserAction`可以继承任意Action,如`MappingDispatchAction`,并定义私有变量`UserService us`,通过setter方法注入。 2. **Action配置**:在`struts_config.xml`中,`action`...
- 控制器配置:使用`MappingDispatchAction`作为控制器,处理请求转发。 - 验证规则配置:通过`ValidatorPlugIn`插件进行表单验证规则的配置。 - **Action配置**:定义具体的Action类及其映射路径。 - **资源...