以下是我想要做的事:
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的任何一个。我宁愿让表单submit直接调用适当的webflow (就像我看到的所有示例一样),但是有两个webflow,只有一个表单。我怎样才能做到这一点?
如果您认为这是错误的,我也对替代实现感兴趣。我对grails中的网络流很陌生。
发布于 2011-03-06 08:34:24
查看grails文档中的actionSubmit
标记。我认为,您应该使用actionSubmit
而不是submitButton
actionSubmit
创建一个提交按钮,该按钮映射到特定的操作,允许您在一个表单中拥有多个提交按钮。Javascript事件处理程序可以使用与HTML中相同的参数名添加。
通过这种方法,您无需在action
标记中提及form
,即无需在goToWizard
中进行检查。您可以将内容直接发送到您的特定操作。
这就是解决你问题的方法吗?
https://stackoverflow.com/questions/5209043
复制相似问题