親愛的 Spring 社群,
我們很高興地宣佈 Spring Web Flow (SWF) 1.0 RC3 (Release Candidate 3) 已經發布了。 下載 | 文件 | 變更日誌
這個穩定版本包含錯誤修復和小的改進。 目前,我們預計這是 Spring Web Flow 1.0 最終版本之前的最後一個釋出候選版本,最終版本即將到來。 值得注意的改進包括…
值得注意的改進
改進的流程異常層次結構。 總體而言,異常層次結構現在更清晰地組織了從流程定義訪問失敗 (FlowLocatorException) 到執行時流程執行失敗 (FlowExecutionException) 和執行持久化失敗 (FlowExecutionRepositoryException) 的各種失敗類別。
改進了在 Portlet 環境中使用後退按鈕的支援。 結合基於延續的倉庫,SWF 支援在流程活動期間完全使用瀏覽器導航按鈕(後退、重新整理)在 Portlet 環境中。 當流程執行終止時,瀏覽器重新整理將自動觸發新的執行啟動。
更簡單的預設 JSF 檢視對映。 現在,預設情況下,SWF 檢視名稱應與 JSF 檢視 ID 完全對應。您將在 sellitem-jsf 示例中看到這個預設設定在起作用——請注意檢視是如何像標準的 JSF 導航處理器一樣引用,例如 "/priceAndItemCountForm.jsp"。 這允許自然支援其他 JSF 檢視技術,例如 Facelets,並且對於 JSF 開發者來說是更自然的預設設定。 如果您需要自定義 SWF 到 JSF 檢視對映,請將自定義 ViewIdMapper 插入到您的 FlowPhaseListener 中。
示例應用程式簡化。 我們簡化了 fileupload、flowlauncher、birthdate 和 sellitem 示例,以利用 Spring Web Flow 的最新功能和最佳實踐。
可能影響使用者的變更
在通往 1.0 最終版本的路上,1.0 RC3 中有一些可能影響使用者的變更。 以下部分對此進行說明
FormAction 屬性 "validateUsingValidatorMethod" 已被移除,以簡化操作。 經驗表明,此屬性是新使用者混淆的來源。 作為更好的替代方案,要在不進行驗證的情況下執行資料繫結操作,只需從您的流程定義中呼叫 "bind" 操作方法。 當您需要分步 Validator 驗證時,只需呼叫 "bindAndValidate" 或 "validate",並將 "validatorMethod" 屬性設定為特定的驗證器方法即可。 有關示例,請參閱 sellitem。
StateExceptionHandler 已更名為 "FlowExecutionExceptionHandler"。 這會影響自定義處理器實現。 要升級,只需實現新的介面;簽名在邏輯上是相同的。
FlowExecutorImpl 的 "redirectOnPause" 屬性現在接受布林值,而不是 RedirectType 列舉。 從 1.0 RC2 開始,SWF 中只有一種重定向型別——流程執行重定向。 將此標誌設定為 'true' 會在流程執行每次因進入檢視狀態而暫停時觸發它。 有關示例,請參閱 Numberguess 或 sellitem。
--------
開始使用 Spring Web Flow 的最佳方法之一是查閱並逐步瞭解示例應用程式。 我們建議從一開始就查閱所有示例,並根據需要補充參考手冊資料。1.0 RC3 版本附帶了十個示例應用程式,每個都展示了一組不同的產品功能。 這些示例是
1. Phonebook - 展示大多數功能(包括子流程)的原始示例
2. Sellitem - 展示帶有條件轉換、流程執行重定向、會話範圍和延續的嚮導
3. Flowlauncher - 展示啟動和恢復流程的所有可能方式
4. Itemlist - 展示 REST 風格的 URL 和內聯流程
5. Shippingrate - 展示 Spring Web Flow 與 Ajax 技術結合使用(感謝 Steven Devijver)
6. NumberGuess - 展示有狀態 bean 和“單鍵”流程執行重定向。
7. Birthdate - 展示 Struts 整合
8. Fileupload - 展示多部分檔案上傳
9. Phonebook-Portlet - 在 Portlet 環境中的 Phonebook 示例
(請注意流程定義如何保持不變)
10. Sellitem-JSF - 在 JSF 環境中的 Sellitem 示例
祝您使用愉快!
Spring Web Flow 團隊
Keith Donald
Erwin Vervaet
Juergen Hoeller
Colin Sampaleanu
Rob Harrop