Grails - 如何从表单调用控制器方法
Grails - how to call a controller method from a form
我是 grails 的新手,非常感谢任何帮助。
此代码在我的 gsp 文件中:
<g:form action="backfillMachineTags">
<fieldset class="buttons">
<g:submitButton name="create" class="save"
value="${message(code: 'default.button.create.label', default: 'Create')}"/>
</fieldset>
</g:form>
这段代码在我的 RegressionPoolMachineController.groovy 文件中:
def backfillMachineTags()
{
flash.message = "testing message"
redirect(action: "list")
}
但是当我点击表单上的提交按钮时,方法从未输入,我收到 404 not found。
留言:/pool-manager/regressionPoolMachine/backfillMachineTags
状态:请求的资源不可用。
我也试过:
<g:form url="[action:'backfillMachineTags',controller:'RegressionPoolMachineController']">
但是得到类似404 not found。
我是否缺少连接表单和控制器的步骤?
除了 "action" 属性之外,尝试向您的表单添加 "controller" 属性。您可以使用 url 而不是控制器和操作,但您需要类似
url="${createLink(controller: "myController", action: "myAction")}"
而不是您在此处显示的内容。
供参考:http://docs.grails.org/2.5.6/ref/Tags/form.html
您还可以在浏览器中查看生成的 HTML(只需查看源代码),看看在结果网页上实际生成了什么。这通常对于找出事情没有按照您希望的方向进行的原因非常有帮助!
尝试使用以下内容:
<g:form controller = "controllerName" action ="actionName" >
<fieldset class="buttons">
<g:submitButton name="create" class="save" value ="${message(code: 'default.button.create.label', default: 'Create')}"/>
</fieldset>
</g:form>
我是 grails 的新手,非常感谢任何帮助。 此代码在我的 gsp 文件中:
<g:form action="backfillMachineTags">
<fieldset class="buttons">
<g:submitButton name="create" class="save"
value="${message(code: 'default.button.create.label', default: 'Create')}"/>
</fieldset>
</g:form>
这段代码在我的 RegressionPoolMachineController.groovy 文件中:
def backfillMachineTags()
{
flash.message = "testing message"
redirect(action: "list")
}
但是当我点击表单上的提交按钮时,方法从未输入,我收到 404 not found。
留言:/pool-manager/regressionPoolMachine/backfillMachineTags
状态:请求的资源不可用。
我也试过:
<g:form url="[action:'backfillMachineTags',controller:'RegressionPoolMachineController']">
但是得到类似404 not found。
我是否缺少连接表单和控制器的步骤?
除了 "action" 属性之外,尝试向您的表单添加 "controller" 属性。您可以使用 url 而不是控制器和操作,但您需要类似
url="${createLink(controller: "myController", action: "myAction")}"
而不是您在此处显示的内容。
供参考:http://docs.grails.org/2.5.6/ref/Tags/form.html
您还可以在浏览器中查看生成的 HTML(只需查看源代码),看看在结果网页上实际生成了什么。这通常对于找出事情没有按照您希望的方向进行的原因非常有帮助!
尝试使用以下内容:
<g:form controller = "controllerName" action ="actionName" >
<fieldset class="buttons">
<g:submitButton name="create" class="save" value ="${message(code: 'default.button.create.label', default: 'Create')}"/>
</fieldset>
</g:form>