这是关于Grails的! 这是一个非常基本的事情,我很难理解。
我在index.gsp
中有这个<g:form name="testForm" url="[controller:'test',action:'index']">
<g:textField name="Input A" value="${Input1}"> </g:textField>
<g:textField name="Input B" value="${Input2}"> </g:textField>
</g:form>
我的TestController类中也有这个:
class TestController {
def index = {
def Input1
def Input2
}
}
我想获取用户在网页上输入的两个输入,并将它们保存到控制器上的相应字段(Input1,Input2)。
我该如何解决?
感谢
答案 0 :(得分:6)
你可以这样写你的表格:
<g:form name="testForm" controller="test" action="index">
<g:textField name="Input1" value="${Input1}"> </g:textField>
<g:textField name="Input2" value="${Input2}"> </g:textField>
<g:actionSubmit value="Send to controller" action="index"/>
</g:form>
请注意,在这种情况下,
然后在控制器中
class TestController {
def index = {
def Input1 = params.Input1
def Input2 = params.Input2
["Input1": Input1, "Input2": Input2]
}
}
这样,值将正确呈现(在返回的模型中)
答案 1 :(得分:1)
您从隐式变量“params
”收到表单参数。在控制器中执行log.error(params)
,您就会知道它们是如何通过的。你可以访问你的参数
params."Input 1"
。
请注意,有一些简洁的方法可以处理来自一个类的多个输入,例如:给出一个域类:
class Test {
String a;
String b;
}
您可以使用表单:
<g:form name="testForm" controller="test" action="index">
<g:textField name="test.a" value="${Input1}"> </g:textField>
<g:textField name="test.b" value="${Input2}"> </g:textField>
</g:form>
在控制器中你可以:
class TestController {
def index = {
def testInstance = new Test(params.test)
}
}
然而,这个技巧只能在管理区域或其他地方使用,因为有一些安全方面的考虑要做。
答案 2 :(得分:0)
答案 3 :(得分:0)
所以提交按钮有效。
<g:form name="testForm" controller="test" action="index">
<g:textField name="input1" value="${input1}"> </g:textField>
<g:textField name="input2" value="${input2}"> </g:textField>
<g:submitButton name="Submit" value="Submit"></g:submitButton>
</g:form>
...
class TestController {
def index = {
def Input1 = params.input1
def Input2 = params.input2
render(Input1+"<br />")
render(Input2+"<br />")
}
}
答案 4 :(得分:-2)
class TestController {
def index = {
def Input1 = params.input1
def Input2 = params.input2
render(Input1+"")
render(Input2+"")
}
}