2011-01-19 47 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