веб-поток в приложении Grails - PullRequest
0 голосов
/ 14 октября 2010

как я могу перенаправить в одно и то же состояние более одного раза, используя веб-поток, например:

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

мне нужно, как войти в это состояние более одного раза, пока места назначения не закончатся thx

Ответы [ 2 ]

1 голос
/ 22 сентября 2011
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 голос
/ 14 октября 2010

Ну, у вас, вероятно, будет что-то вроде следующего кода, который не проверен, но может дать вам общее представление.

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
    }
}

Вам понадобятся кнопки на вашем destinationList представлении, которые вызывают действия «addDestination» или «Finish». См. документацию WebFlow и Справочное руководство .

...