以下是我想要做的想法:
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的新手。
答案 0 :(得分:1)
查看grails文档中的actionSubmit
标记。我认为,您应该使用actionSubmit
代替submitButton
actionSubmit
创建一个映射到特定操作的提交按钮,允许您在单个表单中包含多个提交按钮。可以使用与HTML中相同的参数名称添加Javascript事件处理程序。
通过这种方法,您无需在action
标记中提及form
,即无需在goToWizard
中进行检查。您可以直接将内容发送到您的特定操作
这是解决问题的方法吗?