Spring Web Flow PR4 釋出

釋出 | Keith Donald | 2005年7月17日 | ...

親愛的Spring社群,

我很高興宣佈 Spring Web Flow 預覽版 4 (PR4) 釋出。此版本將 Spring Web Flow 與 Spring 1.2.2+ 對齊使用。

這將是最後一個 Web Flow 預覽版本;下一個版本將是 1.0 RC1。要下載,請訪問:http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=148517

注意:PR3 和 PR4 之間存在一些不相容的更改。這包括根包重新命名,從 org.springframework.web.floworg.springframework.webflow,表明 Web Flow 作為一個獨立模組,值得擁有一個頂級包。  有關更改的完整列表,請在此處訪問更改日誌:http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log

WebFlow Portlet 使用者特別注意:PR4 不提供 Portlet MVC 整合。  Portlet MVC 使用者需要等待幾周後的 Web Flow RC1,屆時 Portlet MVC 將與 Spring 1.3 整合併發布。對於由此造成的短期不便,我們深表歉意:預計在未來幾周內將提供更好的 Portlet MVC 整合 + 示例應用程式。

此 PR4 版本包含多項新增和值得注意的增強功能。以下是其中一些:

狀態進入操作

任何 State 型別的任何例項都可以配置一個進入操作,該操作將在進入狀態時執行。  這有助於通用的狀態設定邏輯。例如,ViewState 可以設定一個進入操作來執行任意的預渲染邏輯。此類預渲染邏輯可能會載入參考資料以填充表單下拉列表。  任意數量的操作可以按順序作為複合狀態進入操作的一部分執行。

<view-state id="displayCriteria" view="searchCriteria">
<entry>
<action bean="searchFormAction" method="setupForm"/>
<action bean="searchFormAction" method="setupReferenceData"/>
</entry>

<transition on="search" to="executeSearch">
<action bean="searchFormAction" method="bindAndValidate"/>
</transition>
</view-state>

可轉換狀態退出操作

任何 TransitionableState 型別的例項都可以配置一個退出操作,該操作將在退出狀態時執行。這促進了通用的狀態清理邏輯。  再次可以指定多個操作,並且它們將自動封裝在一個 CompositeAction 中。

<action-state id="executeSearch">
<action bean="searchAction"/>
<transition on="success" to="displayResults"/>
<exit>
<action bean="auditAction" method="logResults"/>
</exit>
</action-state>

流程執行監聽器標準

在 PR4 之前,沒有簡單的方法可以為一組流程定義定義哪些監聽器應該觀察啟動的流程執行。  新的 FlowExecutionListenerCriteria 提供了一種可插拔策略,其中針對給定流程定義的執行適用的監聽器集是按請求計算的。

<bean id="flowExecutionManager"
class="org.springframework.webflow.execution.servlet.ServletFlowExecutionManager">
<property name="listenerMap">
<map>
<entry value="*">
<key>
<list>
<bean class="example.Listener1"/>
<bean class="example.Listener2"/>
</list>
</key>
</entry>

<entry value="sampleFlowA">
<key>
<list>
<bean class="example.Listener3"/>
</list>
</key>
</entry>
</map>
</property>
...
</bean>

上述 Spring 配置將監聽器1和2附加到所有流程(*)的執行,而監聽器3僅附加到“sampleFlowA”。

大大增強的表示式語言支援

此版本中的真正亮點之一是 Spring 新資料繫結模組的持續進展。  spring-binding 中包含一個表示式解析和評估抽象,它與健壯的型別轉換工具無縫整合。  這兩者結合在一起,允許任意字串(表示一個或多個表示式,例如“公告:${org} ${product} ${release} 已釋出!”)被消耗並轉換為可評估的表示式,利用任何表示式語言,OGNL 是預設值。  Spring Web Flow 在多個地方利用了這種機制,包括重定向表示式、轉換表示式和屬性對映表示式。

  1. 例如,對於根據請求上下文進行評估的重定向表示式
    redirect:/${sourceEvent.parameters.url}?attribute1=${flowScope.foo}&attribute
    2=${requestScope.bar}"
  2. 用於驅動動態狀態轉換決策的轉換表示式
    <transition on="${result == 'success' && ${flowScope.selectedItinerary.price} > 500.0" to="requireCreditCheck"/>
  3. 用於在兩個源之間對映屬性的屬性對映表示式
    <subflow-state id="browseDetails" flow="detailFlow">
    <attribute-mapper>
    <input value="${sourceEvent.parameters.id}" as="someBean.id" from="string" to="long"/>
    </attribute-mapper>
    ...
    </subflow-state>

增強的屬性對映器型別轉換支援

輸入和輸出對映元素的“from”和“to”屬性可用於指定型別轉換規則。  因此定義

<input value="${sourceEvent.parameters.id}" as="someBean.id" from="string" to="long"/>

表示

將 ${sourceEvent.parameters.id} 的值從字串轉換為 long,並將 long 結果設定到 someBean.id。

基於會話的事務同步器策略

PR4 新增了一個事務同步器,它在 HTTP 會話範圍的儲存中管理事務令牌。  它非常適用於利用連續性並需要防止重複應用程式事務發生的流程。

新的便捷動作實現

webflow.action 包現在支援幾種新的動作實現,包括:CompositeAction、DelegatingAction 和 GuardedAction。

JMX 啟用流程執行統計

sellitem 示例現在演示了使用 JMX 管理協議收集所有 Web Flow 的全域性統計資訊,並使用任何 JMX 客戶端(例如 JDK 1.5 JConsole)監控這些統計資訊的能力。  未來的 web flow 版本將增強此功能,以允許按流程執行進行管理和監控。

簡化和改進的 Struts 整合

Struts 1.x 整合在 PR4 中得到了極大的簡化,並與 Spring 1.2.2 引入的 SpringBindingActionForm 對齊。  不再需要特殊的 FlowActionMapping,因為所有 webflow 特定配置現在都由 Spring 管理。  請參閱 birthdate 示例應用程式以獲取具體示例。

其他

改進的 javadoc、錯誤訊息和日誌記錄

大大改進的構建系統,具有“一步式”示例應用程式構建/部署

Erwin 和我必須感謝 Colin Sampaleanu,他構建了一個出色的構建系統來管理整個開發和釋出過程。  當您下載 PR4 時,您會發現構建和部署示例應用程式以及 Spring Web Flow 的任何元件(例如專案本身或繫結模組)都變得簡單易行,並且具有細緻、自動的 jar 檔案管理。  這個“通用構建”系統基於 Ant 1.6.x,並利用 Ivy 進行 jar 依賴管理。

這些只是此版本的一些新功能。  有關更改的完整列表,請參閱 http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Change+Log

一如既往,我們非常重視您的反饋。  預計 Web Flow 1.0 RC1 將在7月底釋出,並整合 Portlet MVC 和 JSF。

乾杯,

Keith Donald
Erwin Vervaet

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有