Spring Web Flow 2.0 M4 - 请求反馈
Web Flow 团队一直在努力开发 Web Flow 2。我们刚刚达到了 第四个里程碑,并且最早下周将进入发布候选状态。2.0 正式版计划在本月底发布。
在 2.0 最终版发布之前,我们非常希望听到您的反馈!如果您是一位目前正在使用 Web Flow 1.x 的应用程序开发者,或者正在评估 Web Flow 以便用于您的项目,请 评估 2.0 M4 并 告诉我们您的想法。如果您是一位正在将 Web Flow 引擎集成到您自己的框架中的 Web 框架提供商,我们鼓励您评估 2.0 M4 中经过改进的钩子,并与我们联系。
在接下来的几段中,我将为使用 Web Flow 的应用程序开发者和将其集成到自己 Web 框架中的框架开发者提供 2.0 M4 的亮点。
应用程序开发者
首先,迄今为止评估最新 Web Flow 功能集最佳方法是试用分发包中包含的参考应用程序。2.0 M4 中有两个参考应用程序,都是“Spring Travel”行程预订应用程序的两种风味。一种风味展示了 Web Flow 与 Spring MVC 集成并使用 JSP 视图,另一种则展示了 Web Flow 与 Spring MVC 集成并使用 JSF 视图。(请参阅:
如何部署)
2.0 版本的主要主题之一是易用性。Web Flow 2.0 M4 引入了许多新功能,可以简化流的实现,我们非常希望听到您对这些功能的反馈。具体来说:
- 我们引入了一个简化的 XML 流定义语法。请试用最新的 Spring Travel 参考应用程序来体验它,或者比较我们示例流的旧版本与最新版本。您怎么看?许多简化来自于对 EL 的增强使用以及更简单的执行操作的标签。例如,除了任何流变量之外,您现在还可以使用 EL 来执行任何 Spring bean 上的任何方法。
- 我们引入了与 Spring Security 2 的集成。Spring Travel 参考应用程序展示了如何使用“secured”元素来保护流。您也可以保护状态和过渡元素。
- 2.0 M4 中有几个新的“富 Web”功能。您可以将一个视图状态标记为“popup”,其视图将在弹出对话框中为您渲染(默认情况下为 Dojo popup)。您也可以在过渡块中使用新的“render”标签,在处理 Ajax 事件后请求页面的部分渲染。最后,尝试在 Spring Travel 应用程序中关闭 Javascript,并注意应用程序如何继续工作。我们努力构建了对降级支持,这对于那些无法依赖客户端可用 Javascript 的客户来说非常重要。
- 我们显著缩短了 FlowExecution 键的长度。1.x 的键格式使流执行 URL 看起来像这样:https:///booking?_flowExecutionKey=_c1E11178E-485F-3913-98BA-86E17A09FA3D_kE977CB0B-47FE-3319-A688-FE4F4FFFCE2。默认的 2.0 格式为您提供了更简单的 URL,例如:https:///booking?execution=c1v1,其中第一个数字是您的 conversationId,第二个数字是您的 view(或 continuation)id。URL 格式当然仍然是可配置的。
- 还有更多值得探索的内容;请参阅发布公告以获取其他新功能的描述。
框架开发者
Web Flow 的目标之一始终是“专注于做好一件事[实现流],并使其易于扩展”。Web Flow 的核心发挥着提供最完整流引擎的作用。在此角色下,我们鼓励其他框架提供商在此基础上进行开发,并告知我们集成是否不像应有的那么容易。Grails 社区已经在这样做,已经将 Web Flow 集成到 Grails 中,用于实现 Groovy 中的流(Grails 构建在 Spring MVC 之上,而 Web Flow 是一个自然的 MVC 扩展,因此非常契合)。
在 Web Flow 中,我们正在做一些事情,以便框架开发者更容易集成。首先,基本上有三个主要的扩展点:
- FlowExecutor SPI 允许 Web Flow 引擎嵌入到另一个环境中,例如 Web 框架。例如,这就是 Web Flow 集成到 Spring MVC 的方式。我们将 Spring MVC 视为最终的 Java 基础 MVC 平台,但如果您不能将其作为基础,这个钩子就在那里。
- FlowBuilder SPI 允许您集成另一种定义流的语法。我们的 XmlFlowBuilder 随 Web Flow 分发包提供。Graeme Rocher 为 Grails 开发了一个基于 Groovy 的流构建器。
- ViewFactory SPI 允许您将视图框架集成到 Web Flow 中,用于在流中渲染视图。这就是 Spring Faces 为 Web Flow 提供 JSF 支持的方式,也是剑桥大学 RSF 团队将 Web Flow 与其框架集成的方式。我能想到的使用此扩展点进行集成的其他候选者包括 Wicket、Flex,也许还有 GWT。
这些扩展点中的每一个在 2.0 版本中都得到了简化,而 ViewFactory 扩展点是新加入的。2.0 M4 还引入了一个新的“AjaxHandler”扩展点,用于集成 Ajax 请求/响应处理,并提供一个与 Spring Javascript 配合使用的实现。我们目前也正在与 IceFaces 团队合作,以便在 2.0 最终版发布前完成与他们 Ajax 组件库的集成。Web Flow 2 的正式发布即将到来。帮助我们使其尽可能易于使用和扩展!