Вот что я думаю сделать:
class MyController {
def goToWizard = {
if (params.option1)
redirect actionName:'wizard1', params:params
if (params.option2)
redirect actionName:'wizard2', params:params
}
def wizard1Flow = {
start {
action {
// put some values from the params into flow scope
[thingsThatGotPassedIn:params.thingsThatGotPassedIn]
}
on('success').to 'nextThing...'
}
// wizard 1 implementation...
//...
done {
redirect view:'somewhereElse'
}
}
def wizard2Flow = {
start {
action {
// put some values from the params into flow scope
[thingsThatGotPassedIn:params.thingsThatGotPassedIn]
}
on('success').to 'nextThing...'
}
// wizard 2 implementation...
//...
done {
redirect view:'somewhereElse'
}
}
}
Я пробовал что-то подобное, но, похоже, я никогда не попадал в веб-поток. Это верный подход?
Причина всего этого в том, что у меня есть gsp, который выглядит так (форма с двумя кнопками отправки внутри, каждая из которых должна запускать другой веб-поток)
<g:form action="goToWizard">
...
<g:submitButton name="wiz1" value="Goto Wizard1"/>
<g:submitButton name="wiz2" value="Goto Wizard2"/>
</g:form>
Внутри формы есть некоторые элементы ввода, значения которых я хочу передать в любой веб-поток, который будет вызван. Я бы предпочел, чтобы отправка формы напрямую вызывала соответствующий веб-поток (как работают все примеры, которые я видел), но есть два веб-потока и только одна форма. Как я могу это сделать?
Меня также интересуют альтернативные реализации, если вы считаете, что это неправильный путь. Я новичок в веб-потоках в Grails.