Grails Web Flow: перенаправить на веб-поток с другого действия контроллера? - PullRequest
0 голосов
/ 06 марта 2011

Вот что я думаю Я хочу сделать:

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, который выглядит так (форма с 2 кнопками отправки внутри, каждая из которых должна запускать свой веб-поток)

<g:form action="goToWizard">
    ...
    <g:submitButton name="wiz1" value="Goto Wizard1"/>
    <g:submitButton name="wiz2" value="Goto Wizard2"/>
</g:form>

Есть некоторые входные элементы внутри формы, в которые я хочу передать значения в зависимости от того, какой веб-поток вызывается.Я бы предпочел, чтобы форма submit вызывала соответствующий веб-поток напрямую (как работают все примеры, которые я видел), но есть два веб-потока и только одна форма.Как я могу это сделать?

Меня также интересуют альтернативные реализации, если вы считаете, что это неправильный путь.Я новичок в веб-потоках в Grails.

1 Ответ

1 голос
/ 06 марта 2011

Взгляните на тег actionSubmit в документации Grails.Я думаю, вы должны использовать actionSubmit вместо submitButton

actionSubmit создает кнопку отправки, которая сопоставляется с определенным действием, что позволяет вам иметь несколько кнопок отправки в одной форме.Обработчики событий Javascript могут быть добавлены с использованием тех же имен параметров, что и в HTML.

При таком подходе вам не нужно указывать action в теге form, т. Е. Не нужно делать проверку в goToWizard,Вы можете отправить содержимое непосредственно на конкретное действие.
Это решение вашей проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...