Spring Web Flow 1.0 RC4 发布

发布 | Keith Donald | 2006年10月5日 | ...
尊敬的 Spring 社区:
 
我们很高兴地宣布 Spring Web Flow 1.0 RC4 已经发布。
 

 

Spring Web Flow 是 Spring 社区的一个产品,专注于 Web 应用程序中用户界面流程的编排。

此版本包含许多改进和一些令人兴奋的新功能。我们认为它是迄今为止最稳定的版本,并且最终使 Spring Web Flow 1.0 最终路线图的功能完整。Spring Web Flow 1.0 最终版本将于下周发布,届时将进行最少的更改。在此之前,我们鼓励您测试 1.0 RC4,以帮助在 1.0 正式发布之前发现任何剩余的问题。

请注意,此版本中有一些会影响用户的功能更改。1.0 RC3 或更早版本的用户应查看 升级指南,其中详细概述了这些更改。

1.0 RC4 中的新增功能和值得注意的功能列表非常令人兴奋,包括:

新增功能和值得注意的功能

作为 Spring Web Flow 1.0 最终版本之前的最终候选版本,Spring Web Flow 1.0 RC4 引入了强大的新功能,如渲染操作 (1)、评估操作 (2)、设置操作 (3)、闪存作用域 (4)、流程执行属性 (5) 和始终在暂停时重定向 (6)。它提供了增强的文档、更好的流程定义验证、智能默认值和完整的自定义 Spring 2.0 配置模式 (7) 用于配置流程执行引擎。

  • (1) 渲染操作在渲染响应之前执行应用程序行为。渲染操作在视图状态被要求进行可渲染视图选择时被调用,在进入时或由重定向或浏览器刷新按钮触发的刷新时。以下示例显示了一个渲染操作,该操作在渲染结果视图之前执行电话簿搜索。

    <view-state id="displayResults" view="searchResults">
        <render-actions>
            <bean-action bean="phonebook" method="search">
                <method-arguments>
                    <argument expression="flowScope.searchCriteria"/>          
                </method-arguments>
                <method-result name="results"/>
            </bean-action>
        </render-actions>
        <transition on="newSearch" to="enterCriteria"/>
        <transition on="select" to="browseDetails"/>
    </view-state>

  • (2) 评估操作根据流程执行状态评估表达式。表达式(默认基于 OGNL)可以针对流程执行的根 RequestContext 中可以访问的任何对象,包括任何作用域中的对象,例如流程作用域。以下示例显示了一个评估操作,该操作在流程作用域 bean “game” 上调用 “makeGuess” 方法
    <action-state id="makeGuess">
        <evaluate-action expression="flowScope.game.makeGuess(requestParameters.guess)">
            <evaluation-result name="guessResult"/>
        </evaluate-action>
        <transition on="CORRECT" to="showAnswer"/>
        <transition on="*" to="enterGuess"/>
        <transition on-exception="java.lang.NumberFormatException" to="enterGuess"/>
    </action-state>
  • (3) 设置操作在作用域类型(如流程作用域)中设置属性值。属性可以是顶级属性或嵌套属性路径中的属性。以下示例显示了一个设置操作,该操作在闪存作用域中将 “fileUploaded” 属性设置为 “true”。
    <action-state id="uploadFile">
        <action bean="uploadAction" method="uploadFile"/>
        <transition on="success" to="selectFile">
            <set attribute="fileUploaded" scope="flash" value="true"/>
        </transition>
    </action-state>
  • (4) 闪存作用域是一种新的作用域类型,用于在重定向和任何视图刷新之间持久化属性。当发出事件以从视图中转换出去时,闪存作用域将被清除。以下完整的流程定义示例显示了如何使用闪存作用域将 “fileUploaded” 属性公开给 selectFile 视图状态,以便在上传成功后显示成功消息。
    <flow xmlns="http://www.springframework.org/schema/webflow"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.springframework.org/schema/webflow
                                           http://www.springframework.org/schema/webflow/spring-webflow-1.0.xsd">
   
        <start-state idref="selectFile"/>
       
        <view-state id="selectFile" view="fileForm">
            <transition on="submit" to="uploadFile"/>
        </view-state>
   
        <action-state id="uploadFile">
            <action bean="uploadAction" method="uploadFile"/>
            <transition on="success" to="selectFile">
                <set attribute="fileUploaded" scope="flash" value="true"/>
            </transition>
        </action-state>
       
    </flow>
  • (5) 流程执行属性允许您设置自定义属性,这些属性可以影响流程执行行为。以下示例显示了一条指令,用于在 Portlet 环境(其中重定向往往不适用)中将 “alwaysRedirectOnPause” 属性设置为 false。
    <flow:executor id="flowExecutor" registry-ref="flowRegistry">
        <flow:execution-attributes>
            <flow:alwaysRedirectOnPause value="false"/>
        </flow:execution-attributes>
    </flow:executor>
  • (6) “始终在暂停时重定向” 为您提供默认的 POST+REDIRECT+GET 行为,无需特殊编码。现在默认情况下,当进入视图状态时,会自动发出重定向。这会触发对流程执行 URL 的刷新,该 URL 在对话处于活动状态时保持稳定。
  • (7) 新的 Spring 2.0 配置方言极大地简化了系统配置,并提供了强大的验证和工具支持。配置 Webflow 的基础结构现在就像定义两个元素一样简单,如下面的完整示例所示
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:flow="http://www.springframework.org/schema/webflow-config"
           xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/webflow-config
               http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd">
   
        <!-- 启动新的流程执行并恢复现有执行。 -->   
        <flow:executor id="flowExecutor" registry-ref="flowRegistry"/>
       
        <!-- 为此应用程序创建流程定义的注册表 -->
        <flow:registry id="flowRegistry">
            <flow:location path="/WEB-INF/flows/**-flow.xml"/>
        </flow:registry>
       
    </beans>

有关这些功能的更多信息,请参阅参考手册。Spring Web Flow 1.0 RC4 进一步完善了参考文档,提供了 70 页关于 SWF 用法的说明。该手册以 HTMLPDF 格式在线提供。

入门

开始使用 Spring Web Flow 的最佳方法之一是查看并演练示例应用程序。我们建议从一开始就查看所有示例,并根据需要补充参考手册材料。此版本附带了十个示例应用程序,每个应用程序都演示了一组不同的产品功能。这些示例是

  1. 电话簿 - 演示大多数功能(包括子流程)的原始示例
  2. Sellitem - 演示带有条件转换、流程执行重定向、自定义文本字段格式和延续的向导
  3. Flowlauncher - 演示启动和恢复流程的所有可能方式
  4. Itemlist - 演示 REST 风格的 URL 和内联流程
  5. Shippingrate - 演示 Spring Web Flow 与 Ajax 技术结合使用
  6. NumberGuess - 演示有状态 Bean、评估操作和“单键”流程执行重定向。
  7. Birthdate - 演示 Struts 集成
  8. Fileupload - 演示多部分文件上传、设置操作和闪存作用域
  9. Phonebook-Portlet - Portlet 环境中的电话簿示例(请注意流程定义没有更改)
  10. Sellitem-JSF - JSF 环境中的 sellitem 示例

要构建示例应用程序以进行快速评估,只需

  1. 解压缩 spring-webflow-1.0-rc4.zip 发布归档文件
  2. 访问 projects/spring-webflow/build-spring-webflow 目录
  3. 执行 “ant dist” 目标。
  4. 在 “target/artifacts” 目录中查看每个示例的可部署 .war 文件以及扩展的 war 目录。
分别查看发布的 readme.txt 和 projects/spring-webflow/spring-webflow-samples/readme.txt,以获取有关发布归档文件内容和示例的更多信息。

所有示例项目都是 Spring IDE 项目,可以直接导入到 Eclipse 中。

感谢所有支持此版本发布的人。Spring Web Flow 1.0 现在……终于……近在眼前了。

享受!

Spring Web Flow 团队

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

抢先一步

VMware 提供培训和认证,助您快速提升。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看全部