2011-01-19 62 views
4

Grails的Webflow的小白在這裏......我的WebflowGrails的Webflow的幹分支邏輯

一個國家接收需要觸發同樣的操作,然後過渡如果操作成功分離狀態的兩個事件。我最初的嘗試重複了actionState中的代碼。不好。所以,經過一些試驗和錯誤之後,我想出了以下內容。

state0 { 
     on("event1") { 
      flash.stateAfterNext = "state1" 
     }.to "actionState" 

     on("event2") { 
      flash.stateAfterNext = "state2" 
     }.to "actionState" 
    } 

    actionState { 
     action { 
      flow.unit = Unit.get(params.unit) 
      success() 
     } 
     on("success").to { flash.stateAfterNext } 
     on(Exception).to "home" 
    } 

    state1 { ... } 

    state2 { ... } 

這工作,但它是好的Grails的做法?有沒有更好的方法來處理這樣的流程分支邏輯?特別是,我是否應該在這裏使用子流程,如果是這樣,那會是什麼樣子?

注意:我試圖將actionState中的代碼轉換爲單獨的方法,但因爲它引用了flow,所以不起作用。

回答

2

什麼像

flow{  
    state0 { 
     on("event1") { 
      saveUnit(flow,params.unit) 
     }.to "state1"  
     on("event2") { 
      saveUnit(flow,params.unit) 
     }.to "state2" 
    } 
    state1{...} 
    state2{...} 

} 

private saveUnit(flow, unit){ 
    flow.unit = Unit.get(unit) 
} 
+0

偉大的作品,謝謝。 – lambmj 2011-01-20 12:14:13