2010-10-14 55 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