2010-10-14 27 views
0

我怎樣才能重定向到同一狀態超過一次使用Web流量 例如:的Webflow在Grails應用程序

on('submit'){ 
    def destinationInstance = Destination.get(params.destination) 
    def destinationGroupsInstance = DestinationGroup.get(params.destinationGroups) 
    def h = destinationInstance.addToDestinationGroups(destinationGroupsInstance) 
}.to('flowList') 

我需要的是如何直至目的地結束 進入到這種狀態超過一次thx

+0

我覺得很難理解的問題。你想達到什麼目的? – Ruben 2010-10-14 14:29:23

回答

1
on('submit'){ 
    def destinationInstance = Destination.get(params.destination) 
    def destinationGroupsInstance = DestinationGroup.get(params.destinationGroups) 
    def h = destinationInstance.addToDestinationGroups(destinationGroupsInstance) 
}.to{ 
    (condition or while loop or for loop) 
    if success then 
     return "<state name>" 
    else 
     return "flowList" 
} 

參考: http://livesnippets.cloudfoundry.com/docs/guide/2.%20Grails%20webflow%20plugin.html

1

那麼,你可能會有類似下面的代碼,這是未經測試,但可能會給你一個大致的想法。

def destinationFlow = { 

    initialize { 
     action { 
      flow.destination = Destination.get(params.id) 
     } 
     on('success').to 'destinationList' 
    } 

    destinationList { 
     render(view: 'destinationList') 
     on('addDestination') { 
      def destinationGroup = DestinationGroup.get(params.destinationGroupId) 
      flow.destination.addToDestinationGroups(destinationGroup) 
     }.to 'destinationList' 

     on('finish').to 'done' 
    } 

    done { 
     flow.destination.save() 
     redirect(...) // out of the flow 
    } 
} 

你需要的是調用「addDestination」或「完成」的行爲對你destinationList視圖按鈕。請參閱WebFlow documentationReference Guide

+0

提交時,我需要將destinationGroup添加到目標,但不是一次。我的意思是我需要重定向到這個頁面,直到所有的目的地都有destinationGroup。我找到了一種重定向到同一頁面的方式,但是我有一個問題,那就是數據庫中的保存沒有發生。你有這個問題的解決方案 – 2010-10-15 04:10:24

+0

這有點令人困惑。如果是這樣的話,爲什麼需要一個webflow?爲什麼你不能循環遍歷所有可用的目的地,將它們添加到每個目的地?我可能會誤解你的問題。也許你可以描述你的Destination和DestinationGroup實體是什麼,以便我們可以理解你的域名。 – 2010-10-15 13:49:48