JavaScud | Forum | JIRA | Blog |
  Dashboard > WebWork2文档中文化计划 > ... > WebWork 2.2 > WebWork 2.2 Migration Notes
  WebWork2文档中文化计划 Log In View a printable version of the current page.  
  WebWork 2.2 Migration Notes
Added by scud, last edited by scud on May 19, 2006  (view change)
Labels: 
(None)

此文档涵盖了一步一步的指导,指导你从2.1.x升级到WebWork 2.2,同时也是一个主要的变化的指南的列表.

升级指导

  1. 获取 最新的 2.2 发布版本
  2. 检查 依赖库 看看需要哪些必须的库.一个需要注意的改变就是对Rife-Continuations的依赖. 点击各个tab了解不同使用情况下的依赖库.例如如果你使用FreeMarker,就点击那个tab来查看需要哪些依赖.注意如果你私用JSP标签,缺省情况下你就是使用FreeMarker作为UI组件的模板的.
  3. 检查下面的 单项改变 部分来查看是否有一些影响你的代码的改变
  4. 更新到使用 FilterDispatcher 来代替 ServletDispatcher. 检查 web.xml 2.1.x compatibility 页面查看一些兼容性的讨论, 以及查看 web.xml 来了解哪些东西需要放到 web.xml 文件里.

过时/废弃(不建议使用)的项目

  • ServletDispatcher 已经被废弃了, 如果可能请使用FilterDispatcher. 浏览 web.xml 2.1.x compatibility 获取更多关于当你切换到FilterDispatcher时可能潜在的问题的更多信息.
  • Velocity 和 FreeMarker servlet 已经不在被支持了.我们极力地推荐你不要使用这些servlet,而是直接使用FreeMarker Result 或者 Velocity Result.
  • 如果你在Velocity里面使用JSP标签,这不会在被支持了并且很快被移除. 你可以使用web.xml 2.1.x compatibility 里面所说的步骤来让它正常工作,但是我们极力推荐使用新的WebWork提供的原生的Velocity标签.
  • 表格(table)的标签已经被确定废弃了.在将来如果更多的时间可以投入的话我们可能不在废弃它,但是我们推荐你寻找其他替换的方式,例如Display Tag.
  • 当你使用FilterDispatcher时所有对包含action的支持(使用 include 标签或者 jsp:include) 不在有效. 我们推荐你使用 action 标签来代替.
  • cos和pell文件上传解析器不在被积极维护,会被很快移除.我们强烈建议你使用Jakarta的文件上传解析器,也就是缺省的解析器.

被删除的项目

  • 所有的 VoiceXML 标签已经从WebWork里移除.
  • 基于Velocity的 Tags 已经被移除. 如果你使用或者扩展了这些标签(一般是高级用户),你可以从webwork的jar里面的/template/archive里面复制它们.

单项改变

版本 描述 老的代码 新的代码
2.1.x 如果你实现了你自己的 ObjectFactory 或者 ActionInvocation 类, 你会注意到有一些小的变化,对于build*方法可以使用一个 "extraContext" Map.这允许,例如在对象创建时访问Session map,甚至是在 ActionContext ThreadLocal 被设置之前. ObjectFactory.getObjectFactory().buildBean(clazz); ObjectFactory.getObjectFactory().buildBean(clazz, extraContext);
2.0+ 如果你使用WebWork的基类来构建模板化的标签,你应该需要重构UI标签,并使用通用的 Component 类作为模板的后盾.现在标签都使用了这些 Component 类,Velocity和FreeMarker也是如此. 这允许 Velocity 和 FreeMarker 直接使用相同的UI组件,不再需要自称具有一个JSP页面.但是这也意味着需要重构你的自定义标签来使用新的API. ...your code.. 查看2.2源码里已经存在的UI标签
2.1.x 如果你还 没有 使用 Alt Syntax, 它现在缺省是启用的了. 你现在不是选择升级就是改变 Tag Syntax <ww:url value="'http://www.yahoo.com'"/> <ww:url value="http://www.yahoo.com"/>
2.1.x 如果你使用了FreeMarker并且你的代码在collection和map上使用了psuedo 属性,你需要修改代码来用调用方法的方式替代. ${parameters?size} / ${parameters.size?html} ${parameters.size()} / ${parameters.get("size")?html}
2.1.x defaultStack 已经被重命名为 basicStack. <interceptor-ref name="defaultStack"/> <interceptor-ref name="basicStack"/>
2.1.x completeStack 被重命名为 defaultStack. <interceptor-ref name="completeStack"/> <interceptor-ref name="defaultStack"/>
2.1.x defaultStack (也就是以前的completeStack) 现在在webwork-default.xml里是缺省的拦截器.另外,这个stack还配置了 Workflow InterceptorValidation Interceptor 在遇到方法名为 input, back, 或者 cancel 的方法不在运行. N/A N/A
2.1.x component 拦截器已经被废弃 (以及所有的 WebWork IOC 特性) 并且被从 basicStack 和 completeStack里移除. 如果你希望使用这些废弃的特性你需要手动把它添加回来. N/A N/A
2.0+ include 标签的 page 属性自从1.x就被废弃现在从2.2里面移除了. 请使用value属性. <ww:include page="..."/> <ww:include value="..."/>
2.0+ text 标签的 value0, value1, value2, 和 value3 属性自从1.x就被废弃了现在已经从2.2里移除了.请使用param标签代替. <ww:text value0="...""/> <ww:text><ww:param value="someValue">...</ww:param></ww:text>
2.0+ session map wrapper (在ActionContext里建立的) 已经改变了不在为每个请求创建session. 如果你的应用程序依赖session会被自动创建,WebWork 2.2已经不在那样做了.作为替代,你必须自己创建session或者当把一个数据放到session Map里时session会被创建. N/A N/A
2.0+ VUI 标签已经从WebWork里移除.它们在4年中没有被积极地使用而且在社区中没有被使用. N/A N/A
2.0+ WebWork的TLD的URI已经从 webwork 改为 /webwork. 如果你已经使用了在webwork.jar里大包的TLD,你必须在你的JSP里面调整URI. <%@ taglib uri="webwork" prefix="ww" %> <%@ taglib uri="/webwork" prefix="ww" %>
2.0+ 缺省的编码已经从 ISO-8859-1 改为 UTF-8. 如果你希望继续使用 ISO-8859-1, 你必须修改你的 webwork.properties. N/A webwork.i18n.encoding=ISO-8859-1
Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators