亲爱的Spring社区,
我们很高兴地宣布 Spring Web Flow 2 正式上市。 下载 | 文档
Spring Web Flow 是 Spring Portfolio 中专注于提供构建和运行富 Web 应用程序的基础设施的项目。作为 Spring 项目,Web Flow 基于 Spring Web MVC 框架提供:
- 用于定义可重用控制器模块的特定领域语言,称为 flows
- 用于管理对话状态的高级控制器引擎
- 用于使用 Ajax 构建富用户界面的一流支持
- 用于结合 Spring 使用 JavaServerFaces 的一流支持
Web Flow 2 发行版的模块及其与 Spring Framework 的关系如下所示:
Web Flow 2 的内容
Spring Web MVC
Spring Web MVC 框架是 Spring Framework 发行版的模块,它使用经过验证的模型视图控制器(MVC)范例为使用 Spring 开发 Web 应用程序提供了基础。Web Flow 发行版的每个模块都建立在这个基础上。
Spring Web Flow
Web Flow 模块是 MVC 的扩展,允许您使用 特定领域语言 定义控制器。这种语言旨在模拟需要多次服务器请求才能完成的用户交互,或者可以从不同上下文调用。
Spring JavaScript
Spring JavaScript 是一个 JavaScript 抽象框架,可以轻松编写非侵入性 JavaScript,以逐步增强网页的行为。该框架包含一个公共 JavaScript API 以及一个基于 Dojo Toolkit 的实现。Spring.js 旨在简化常见企业场景中 Dojo 的使用,同时保留其在高级用例中的全部功能。
Spring JavaScript 可以与任何服务器端框架协同工作。Web Flow 2 发行版包括 Spring JavaScript 和 Spring Web MVC 之间方便的集成,用于处理 Ajax 请求。
Spring Faces
Spring Faces 模块包含 Spring 对 JavaServerFaces 的支持。这种支持允许您在熟悉的 Spring MVC 和 Web Flow Controller 环境中使用 JSF 作为视图技术。通过这种架构方法,您可以结合 JSF UI 组件模型的优势和 Web MVC 架构的优势。Spring Faces 还包含一个基于 Spring JavaScript 的轻量级组件库,用于以渐进的方式声明式地启用 Ajax 和客户端验证行为。
Web Flow 2 发行版的主题
除了引入新的 Spring Faces 和 Spring Javascript 模块外,Web Flow 2 发行版还解决了两个主要主题:集成和简洁性。
集成
在所有模块中,Web Flow 2 发行版都增加了许多有趣的集成,让您可以丰富您的 Web 应用程序。这些集成支持:
- 使用 Spring Security 以声明式的方式保护您的 flows
- 使用 Tiles 进行 JSP 页面组合和 Ajax 部分渲染
- 在使用 JSF 时,使用 Facelets 进行页面组合和布局
- 在使用 JSF 时,使用 Apache Trindad 和 JBoss RichFaces 组件库
- 以渐进且非侵入性的方式使用 Dojo 部件系统;如果客户端没有 JavaScript,则会优雅降级。
简洁性
Web Flow 2 中的 flow 定义语言得到了极大的简化,同时整体功能也更加强大。这些简化包括:
- 与版本 1 的 flow 定义相比,版本 2 的 flow 定义的代码行数总体减少了约 50%(示例:版本 2 对比 版本 1)
- 使用表达式语言(EL)调用操作的简洁语法,支持 Unified EL 和 OGNL
- 声明式的模型绑定和验证,支持约定优于配置
- 通过 flow 定义继承,在 flow 和 state 级别上支持重用
- 增强的模块化,允许将 flow 及其依赖资源打包成一个独立的单元
发布说明
- Web Flow 2 需要 Java 1.4 或更高版本,并在所有主流 Java EE 平台(包括 Tomcat、Jetty、Websphere、WebLogic 和 JBoss)上运行。
- Web Flow 2 需要 Spring Framework 2.5.4 或更高版本。
入门
其他社区资源
- 阅读 SpringSource 的 Keith Donald 和 Jeremy Grelle 的 访谈,详细了解 Web Flow 2 发行版的新特性。
- 观看 Ajaxian.com 的 访谈,其中与 Dion Almaer 讨论了发行版和 Spring JavaScript。
- 如果您是现有的 Web Flow 1 用户,请查阅 迁移指南 以帮助您升级到 Web Flow 2。WebFlowUpgrader 工具可以自动将您的 flows 转换为版本 2 语法。
- 通过 订阅 springframework.org 以获取有关 Web Flow 2 的未来文章。