MappingDispatchAction与DispatchAction用法上的一点区别

 

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这个类.这只是在开发过程中发现的.可能二者有本质的区别,但至少目前笔者还没发现.也许是考虑到方便不同程序员的使用习惯上吧.可谓开发者良苦用心啊.

from: http://hi.baidu.com/kingtoon_go/blog/item/a1a19725338b9a6335a80f79.html

你可能感兴趣的:(Dispatch)