Spring Web Flow PR3 发布
Spring Web Flow PR3 已经发布。以下是 Keith 的邮件列表公告:
---
尊敬的 Spring 社区成员:
很高兴宣布发布 Spring Web Flow Preview 3。 这是一个重要的新版本,包含了大量新功能:无论是在功能强大性还是便利性方面。 此版本被认为在开发使用方面是稳定的。
要下载,请访问:http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=148517
注意:PR2 和 PR3 之间存在一些不兼容的更改。 有关列表和移植指南,请在此处访问更改日志:http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log
此版本包含许多重要的新增强功能。 以下是其中一些:
视图状态增强功能
- 现在可以为每个视图状态配置一个或多个 setup action。 此 action 在进入状态后但在控制权返回给客户端进行响应渲染之前执行。 这减少了(在许多情况下消除了)对 setup action 状态的需求,使流程定义更加简洁。
- 现在,每个视图状态都可以使用新的 ViewDescriptorCreator 策略,以完全动态、可插拔的方式选择要渲染的视图和所有支持的模型数据。
- 现在支持强大的重定向表达式,并全面支持从流程 RequestContext 动态解析重定向参数。
Setup action
<view-state id="displayCriteria" view="criteriaView">
<setup bean="searchFormAction" method="setupForm"/>
<transition on="submit" to="executeQuery">
<action bean="searchFormAction" method="bindAndValidate"/>
</transition>
</view-state>
重定向表达式
<end-state id="end" view="redirect:/myFlow.htm?input=${flowScope.input}"/>
子流程属性映射增强功能
- 现在可以通过 XML 流程定义完全配置子流程输入和输出映射策略。
- 还可以指定表达式,以动态方式解析子流程输入属性值。
例如
<attribute-mapper>
<input value="${sourceEvent.parameters.id}" as="id" type="long"/>
</attribute-mapper>
使用的表达式语言也是可插拔的 – 默认情况下,web flow 将尝试 OGNL,如果在 classpath 中找不到,它将使用 Spring 的 BeanWrapper。
带注解的定义对象
- 除了 action 执行参数外,系统中的每个核心定义对象——Flow、State 和 Transition——现在都可以用任意属性元数据进行注解。 这些属性可以使用“property”元素在 webflow xml 定义中指定,并全面支持字符串到类型的转换以及方便的类型别名。
例如
<transition on="submit" to="executeQuery">
<property name="submitPressed" value="true" type="boolean"/>
</transition>
在这种情况下,这个 'submitPressed' 布尔属性在进入目标状态后将可用于推理。
增强的流程执行监听器回调
- 响应执行中流程生命周期的监听器现在有更多钩子来插入自定义逻辑——通知现在发生在流程启动、已启动、暂停、恢复、进入新状态、已进入新状态或结束时——并且对于提议的流程状态更改具有否决能力(例如,以便于进行状态前置条件检查)。
---
这些只是此版本的一些新功能。 有关完整的更改列表,请参见http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log
一如既往,我们非常珍视您的反馈。 再发布一两个 PR 版本后,我们将达到 1.0 正式版!
顺致敬意,
Keith Donald
Erwin Vervaet