Spring Web Flow 项目更新

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

Spring Web Flow 项目团队刚刚完成了 Web Flow 2 的第 7 个维护版本。 这是我们迄今为止最好的版本,距离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 中发布,允许您按视图状态限制允许的模型绑定集。 这是以声明式风格实现的,如 此处 所示。

  • 重定向后发布改进

    Web Flow 最有用的功能之一是 重定向后发布模式 正常工作,这是使用受控导航获得良好后退按钮支持的关键先决条件之一。 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 相比,具有更简单的类型转换器 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 流定义为 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 社区中所有即将举行的活动。

查看全部