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>