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这个类.这只是在开发过程中发现的.可能二者有本质的区别,但至少目前笔者还没发现.也许是考虑到方便不同程序员的使用习惯上吧.可谓开发者良苦用心啊.
分享到:
相关推荐
与`DispatchAction`不同,`MappingDispatchAction`允许开发者通过XML配置文件来指定请求到方法的映射,而不是硬编码在Action类中。这样,开发者可以根据业务需求自由地定义请求参数与方法的映射关系,提高了代码的...
- `MappingDispatchAction`进一步降低了Action与视图之间的耦合度,因为可以通过配置文件动态地指定不同的处理方法。 - 但是,这也意味着配置文件变得更为复杂,维护成本增加。 **示例代码**: ```xml <!-- struts...
本文将深入探讨三种不同的`Action`实现方式:继承自`Action`、继承自`DispatchAction`以及继承自`MappingDispatchAction`。每种方式都有其独特的应用场景和配置方法。 #### 一、继承自Action 如果希望自定义的类...
- Struts框架中的Action是处理用户请求的核心组件,有多种类型,如普通Action、SwitchAction、IncludeAction、ForwardAction、DispatchAction、MappingDispatchAction,每种都有特定的用途。 3. **Hibernate HQL与...
- **MappingDispatchAction**:类似于 DispatchAction,但使用更复杂的映射规则来确定要执行的方法。 - **防止表单重复提交**:通过使用令牌(token)机制来防止用户的重复提交操作。 - **Struts 验证框架**:...
- **使用DispatchAction:** 可以根据不同的方法调用不同的处理器。 - **使用MappingDispatchAction:** 动态选择Action执行。 - **使用LookupDispatchAction:** 支持根据请求参数动态选择Action执行。 - **...