Spring Web Flow 项目更新

工程 | Keith Donald | 2009年4月20日 | ...

Spring Web Flow 项目团队刚刚完成了 Web Flow 2 的 第七个维护版本。这是我们迄今为止最好的版本,距离 Web Flow 2.0.0 最终版本发布 将近一年。现在,随着 2.0.x 系列走向成熟稳定,我们已经开始着手开发下一个主要版本。在本次更新中,我想回顾过去的一年,并提供一些关于我们未来方向的信息。

Web Flow 2 的采用情况

去年 Web Flow 2 发布后,我们在发布后的头两个月内就获得了 50,000 次下载。从那时起,我们的 论坛流量 稳步增长,并且我们在多个令人兴奋的行业中看到了新的应用。许多人都知道 Spring Web Flow 是 Orbitz 在线旅行平台的基础,该平台如今支持 ebookers.comnwa.com 等网站。如果您一直关注 2009 年 NBA 季后赛,您可能会发现 Web Flow 是 nba.com 的重要组成部分,这也很有趣。

我们过去一年的工作

与所有 Spring 项目一样,Web Flow 的成功离不开用户反馈。在过去一年里,与客户和 SpringSource 支持工程师的现场互动推动了我们 2.0.x 系列的大部分工作。社区在 报告错误贡献补丁、突出 使用场景 以及普遍讨论项目可以如何继续改进 方面 也表现出色。

我想快速回顾一下自 2.0.0.RELEASE 以来做出的一些具体改进:

  • 流 URL 映射的配置简化和约定

    这项改进在 2.0.5 版本中实现,源于客户反馈以及 Dan Allen 在 JSFOne 上的演示,它将典型的 webflow-config.xml 文件大小减半,降至约 20 行配置。正如您在 此处 所见,这是通过应用通配符搜索流定义并结合基于流 ID 的流定义到 URL 的约定来实现的。

  • 显式视图状态模型绑定的支持

    这项改进首先是为了响应此 安全公告 而为 SpringSource 客户提供的,随后在 2.0.3 版本中发布,它允许您限制允许的模型绑定集按视图状态进行。这通过此处 展示 的声明性样式实现。

  • Post 后重定向改进

    Web Flow 最有用的功能之一就是 Post 后重定向模式 能够直接工作,这是良好后退按钮支持和受控导航的关键先决条件之一。2.0.5、2.0.6 和 2.0.7 版本都对该支持进行了后续改进。最近的改进确保在所有场景下(包括存在绑定或验证错误时)都一致地应用重定向行为。您可以在 ViewState.java 的 doEnter 和 doResume 方法中查看控制此模式强制执行的源代码。

  • 流式操作的支持

    社区 找到了 如何将文件流式传输回参与流程的客户端的方法。对这一点的 文档支持 在 Web Flow 2.0.0 中被忽略了,并在 2.0.6 版本中添加。

  • 类型转换改进

    在 2.0.2 到 2.0.6 版本中,对支持视图状态模型绑定的系统进行了大量改进。该系统提供了 Spring DataBinder 的所有独特功能,例如支持转换通用集合的元素,并且与 Java PropertyEditors 相比,具有更简单的类型 Converter API。

除了这些核心改进之外,我们还在过去一年中看到了许多有趣的 Web Flow 集成,例如 Grails 1.1ZK RIA 框架TerracottaIceFaces、SpringSource 的 richweb 培训课程IntelliJSkyway Software 以及 第一本 Web Flow 2 书籍

我们的未来方向

我们对未来有很多计划。我会留出技术细节供日后讨论,但我想总结一下这次努力的一些关键主题。首先,Web Flow 3 将是第一个需要 Java 5 的版本,因为它将以 Spring Framework 3 作为其基础。其次,您可以期待引入一个 @Flow 模型,该模型可以与 Spring MVC 的无状态 @Controller 模型互补,并允许将有状态的 Web Flow 定义为 POJO。第三,您可以期待 Spring JavaScript 和 Spring Faces,这两个模块源于 Web Flow 2 的努力,都将被提升为顶级 Spring 项目。Spring JavaScript 将成为 Spring 的官方 Ajax 集成项目,而 Spring Faces 将成为 Spring 的官方 JavaServerFaces 集成项目。

我期待下周在 SpringOne 上与许多朋友见面,讨论您在应用该项目中的经验以及我们的未来方向!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有