在WebWork 2.2之前,一个ServletDispatcher 用来处理action请求.另外,在Velocity里模拟了JSP标签.WebWork在这里做了一个重要的改变:ServletDispatcher 不被推荐使用,被FilterDispatcher代替.这对用那些遵循WebWork最佳实践的用户来说通常工作的很好,也是2.2版本推荐的.然而,因为WebWork 2.2中一些小的行为的变化,老的应用程序可能需要ServletDispatcher.
最大的需要注意的变化是任何包含了其他action的应用,不管是通过一个result dispatcher还是jsp/ww:include标签,使用FilterDispatcher时将不再工作.这是因为Servlet容器不支持请求分发器转向到filter的映射 – 仅有servlet的映射被支持. 为了避开这个问题,你可以改变你的代码来使用action链来代替result分发,以及使用ww:action标签来替换jsp/ww:include.
作为一个切换到FilterDispatcher的结果,在Velocity里面的JSP标签仿真不能工作了.这个特性也从来没有非常好地工作和被支持,我们承认(recognize)需要用户利用了这个特性.在WebWork 2.2中,原生的Velocity标签被提供了,而且是 WebWork/Velocity 集成方式中唯一支持的标签.
当然,我们也提供了一个不推荐的方式来避免改变你的代码.我们推荐只要有可能你就更新你的代码.同时,你可能添加下面的Servlets到 web.xml:
Content pulled from external source. Click here to refresh. |
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>com.opensymphony.webwork.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
|