【问题标题】:Grails Web Flow: Redirect to the webflow from another controller action?Grails Web Flow:从另一个控制器操作重定向到 webflow?
【发布时间】:2012-03-01 18:57:10
【问题描述】:

这是我认为我想做的事情:

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 中的 webflows 新手。

【问题讨论】:

    标签: grails redirect spring-webflow


    【解决方案1】:

    查看 grails 文档中的 actionSubmit 标签。我认为,您应该使用actionSubmit 而不是submitButton

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

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

    【讨论】:

    • 是的,这种方式更简单。我摆脱了表单标签中的 action 属性,并使用了 2 个 actionSubmit 标签而不是 submitButton 标签。 actionSumit 分别为它们的动作属性指定了“wizard1”和“wizard2”,我不再需要控制器中的“goToWizard”动作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2019-10-17
    • 2014-12-31
    相关资源
    最近更新 更多