领先一步
VMware 提供培训和认证,助您加速进步。
了解更多尊敬的 Spring 社区成员:
我们非常高兴地宣布 Spring Web Flow (SWF) 1.0 RC1(Release Candidate 1)已发布。 下载它。
经过一年多的辛勤开发工作、29,000 次下载、500 位 论坛用户发表的 3,700 篇文章、一本著作以及众多社区-驱动的文章之后,本次发布带来了 Spring Web Flow 的第一个 1.0 候选版本。 本版本被认为适合生产使用,它巩固了 1.0 API,该 API 在整个 1.x 系列中将保持向后兼容。
感谢所有支持我们产品的 Spring Web Flow 早期采用者和倡导者。 感谢您的反馈和支持,Spring Web Flow 提供了当今最创新、最强大的控制器引擎之一。
Spring Web Flow 团队预计在 1.0 最终版本之前还会有一个发布候选版本。 1.0 RC1 的新增和值得关注之处包括...
新增和值得关注
简单的 NumberGuess 示例应用程序说明了此支持,在该应用程序中,由流程管理的“Game”组件执行游戏业务逻辑。 该组件本身对 Spring Web Flow API 没有依赖。
为了演示,Game 组件的业务接口可以定义为
与用户一起执行游戏的流程定义可能如下所示:
最后,逻辑 game 动作标识符与 Game 实现之间的绑定由 Spring 在 game-beans.xml 中完成。
HigherLowerGame 实现也完全与 Spring 和 Spring Web Flow API 解耦。
增强了对流程变量的支持,这些变量在流程启动时自动创建。 流程变量的值甚至可以来源于后备 bean 工厂,从而受益于其中的完整依赖注入。 变量的确切范围是可配置的。
新增了一种流程执行重定向响应类型,用于重定向到唯一的“流程执行 URL”。 访问流程执行 URL 会在之前进入的 ViewState 刷新 流程,允许从那里继续。 在会话处于活动状态且继续点有效时,URL 保持有效。 这允许在没有页面缓存的情况下完全使用后退、前进、刷新和新窗口按钮。
状态异常处理方面的改进,提供了方便的转换执行状态异常处理程序支持。 核心 transition 元素现在支持一个 on-exception 属性,该属性在发生异常时驱动转换到新状态。 例如
... 如果 placeOrder 方法抛出 AccountException,则将流程转换到 editAccount 状态。
流程属性映射支持方面的改进。 现在每个流程都可以配置 input-mapper 来映射启动流程的调用者提供的输入。 流程还可以配置 output-mapper 来向终止流程的调用者公开返回值。 这些增强功能允许流程作为顶级流程和子流程重复使用而无需更改,因为输入和输出属性在这两种情况下都被一致地映射。
支持动态视图名称和目标状态表达式,分别允许方便地基于运行时计算 ViewState 的逻辑视图名称和转换的目标状态。
增强的 JSF 集成。 JSF 集成现在支持逻辑重定向响应类型,包括 FlowExecutionRedirect、ConversationRedirect、FlowRedirect 和 ExternalRedirect。 此外,FlowPhaseListener 的增强功能允许启动和刷新流程执行,而无需经过正式的导航步骤。 预计 1.0 RC2 将在 Portlet 环境中进一步增加 JSF 的便利性和官方支持。
附加资源和入门方法
Spring Web Flow 1.0 RC1 进一步完善了参考手册,提供了 50 页关于 SWF 用法的重点内容。 该手册提供在线 HTML 和 PDF 格式。
开始使用 Spring Web Flow 的最佳方法之一是查看和演练示例应用程序。 我们建议从一开始就查看所有示例,并根据需要补充参考手册材料。 1.0 RC1 版本附带了九 (9) 个示例应用程序,每个应用程序都演示了一组独特的产品功能。 这些示例包括
1. Phonebook - 演示了大多数功能(包括子流程)的原始示例。
2. Sellitem - 演示了一个带有条件转换、流程执行重定向、会话范围和继续功能的向导。
3. Flowlauncher - 演示了启动和恢复流程的所有可能方法。
4. Itemlist - 演示了 REST 风格的 URL、到可刷新会话 URL 的会话重定向以及内联流程。
5. Shippingrate - 演示了 Spring Web Flow 与 Ajax 技术结合使用(感谢 Steven Devijver)
5. NumberGuess - 演示了有状态 bean
6. Birthdate - 演示了 Struts 集成。
7. Fileupload - 演示了多部分文件上传。
8. Phonebook-Portlet - Portlet 环境中的 phonebook 示例(请注意流程定义如何没有改变)
9. Sellitem-JSF - JSF 环境中的 sellitem 示例(请注意流程定义如何没有改变)
要一步构建用于部署的示例应用程序,只需解压发布存档,访问 projects/build-spring-webflow 目录并执行 ant dist 目标即可。 请分别参阅发布 readme.txt 和 projects/spring-webflow-samples/readme.txt 以获取有关发布存档内容和示例的更多信息。 所有示例项目现在都是 Spring IDE 项目,可以直接导入到 Eclipse 中。 请留意 Spring IDE 团队即将推出的 Spring IDE 图形化 Web Flow 编辑器。
感谢所有让 Spring Web Flow 成为今天的样子的人们——那些使用它、提供使其更强大的反馈的人们。 享受吧!
诚挚地,
Spring Web Flow 团队
Keith Donald
Erwin Vervaet
Colin Sampaleanu
Juergen Hoeller
Rob Harrop