Grails的1.2.1 Webflow的插件(1.2.1) - 参数数量不返回
-
24-09-2019 - |
题
我使用Grails的首次的Webflow的插件和时遇到一些困难。 总之,一旦一个Webflow内,没有信息似乎是返回到从表单的控制器。我已经看过了所有的例子表明,PARAMS返回到控制器动作正常,那么你可以把物品放入流动范围是必要的。不幸的是,示出的printlns均为输出无效,和的PARAMS显示任何程序化输出,预期“testField1”和“testField2”不在params对象。请问不均匀文本框和提交的方式 - 他们的实验结果。 控制器动作流程的简化版本:
def generateProductVariantsFlow = {
start() {
action {
[productInstance:Product.get(params.id)] //the entry params contains the expected id
}
on ("success").to("selectAttributeValues")
}
selectAttributeValues() {
on("next"){TestCommand tc -> //params does not have testField1 or testField2
println "TEST COMMAND"
println "${tc.testField1}"
println "${tc.testField2}"
}.to("selectProductVariants")
on("cancel").to("finishBeforeStart")
}
selectProductVariants {
on("cancel").to("finish")
on("previous").to("selectAttributeValues")
on("next").to("confirmNewVariants")
}
//other states here
finish {
redirect(action:"list")
}
finishBeforeStart { //somewhat misleading state name, but shouldn't be relevant
redirect(controller:"product",action:"show")
}
}
在GSP和命令同样简单 - selectAttributeValues GSP:
<%@ page import="com.castaway.rigging.Product" %>
点击
<g:form action="generateProductVariants">
<input type="integer" id="testField1" name="testField1" value="test1" />
<g:textField name="testField2" value="test2"/>
<div class="buttons">
<span class="button"><g:actionSubmit class="cancel" name="cancel" value="Cancel"/></span>
<g:link action="generateProductVariants" event="next" >Next</g:link>
</div>
</g:form>
</div>
</body>
命令:
class TestCommand implements Serializable {
def testField1
def testField2
}
解决方案
为什么要使用一个链接,而不是一个提交按钮来触发下一个事件?
通过点击该链接会做一个GET请求,其将不包括表单字段。
您需要使用一个提交按钮来触发一个事件。
欢呼声
利
不隶属于 StackOverflow