Spring Web Flow 2.2 M1 发布,支持局部状态保存

阅读数:997 2010 年 8 月 8 日

话题:JavaDevOps语言 & 开发

近日,SpringSource发布了Spring Web Flow 2.2 M1,此次发布重点在于提升对 Java EE6 JSF 2.0 的支持。Web Flow 2.1 无需借助于 Sun Facelets .jar(常用于 JSF 1.2 中)就可以使用 JSF 2.0 依赖,但 Web Flow 2.2 对 JSF 2.0 提供了更多的支持。此次发布使用了核心的 JSF 2.0 特性与库。

Spring Web Flow 可以无缝集成到 Spring MVC、JSF 等框架中以定义页面流(由视图 View 与动作 Action 组成)、管理请求间的状态并支持页面流的重用。2.2 使用了 <f:ajax> 标签实现了 JSF 2.0 Ajax 的处理。<f:ajax> 还可以指定客户端的事件以及请求处理执行过程中的组件。该标签可以嵌套。

Web Flow 2.2 支持使用 JSF 2 的 ResourceHandler API 来处理资源。JSF 组件库通过 API 或 @ResourceDependency 注解可以透明的方式简化资源的添加工作。JSF 资源 URL 指向了 Web Flow 中的 Spring MVC DispatcherServlet;此外,还新增了一个 Spring MVC HttpRequestHandler 以将资源请求代理给 JSF 2。

Web Flow 2.1 并不支持 JSF 2 的局部状态保存,但借助于 JSF 2 对状态保存的改进,现在的 Web Flow 2.2 提供了对局部状态保存开箱即用的支持。通过该支持,Web Flow 现在可以使用单独的 FacesContext 实例处理整个流程请求。为了避免 FacesContext 出现 NullPointerException 异常,需要添加如下的 FlowExecutionListener:

<webflow:flow-executor id="flowExecutor">

    <webflow:flow-execution-listeners>

        <webflow:listener ref="facesContextListener" />

    </webflow:flow-execution-listeners>

</webflow:flow-executor>

<bean id="facesContextListener" class="org.springframework.faces.webflow.FlowFacesContextLifecycleListener"/>

Web Flow 2.2 还支持复合组件、JSR-303 验证、系统事件及其他的 JSF 2 特性。该项目还将继续增加对 JSF 2 的支持以包含 Spring Faces 组件库。最后,还将提供对 PrimeFaces 组件库的紧密集成。

感兴趣的读者可以从SpringSource 博客上了解关于此次发布的更多信息,还可以在 InfoQ 上找到关于 Spring Web Flow 的相关信息。可以从这里下载 Spring Web Flow 2.2 M1 或是通过 Maven 地址http://maven.springframework.org/milestone下载。与 Spring Web Flow 2.1 一样,Spring Web Flow 2.2 也需要使用 JDK 1.5、Spring 3 及 Spring Security 3。