Grails Web Flow:从另一个控制器操作重定向到Webflow?

时间:2011-03-06 06:12:55

标签: grails redirect spring-webflow

以下是我想要做的想法

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个提交按钮的表单,每个按钮应该触发不同的webflow)

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

表单中有一些输入元素,我希望将值传递给任何调用的webflow。我宁愿让表单提交直接调用适当的webflow(我见过的所有示例的工作方式),但有两个webflow,只有一个表单。我怎么能做到这一点?

如果您认为这是错误的方式,我也对替代实施感兴趣。我是grails中webflow的新手。

1 个答案:

答案 0 :(得分:1)

查看grails文档中的actionSubmit标记。我认为,您应该使用actionSubmit代替submitButton

actionSubmit创建一个映射到特定操作的提交按钮,允许您在单个表单中包含多个提交按钮。可以使用与HTML中相同的参数名称添加Javascript事件处理程序。

通过这种方法,您无需在action标记中提及form,即无需在goToWizard中进行检查。您可以直接将内容发送到您的特定操作 这是解决问题的方法吗?