Grails-如何从窗体调用控制器方法

Grails-如何从窗体调用控制器方法,grails,groovy,gsp,Grails,Groovy,Gsp,我是grails的新手,非常感谢您的帮助。 此代码在我的gsp文件中: <g:form action="backfillMachineTags"> <fieldset class="buttons"> <g:submitButton name="create" class="save" value="${message(code: 'default

我是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>
但是当我点击表单上的submit按钮时,该方法从未被输入,我得到一个404 not found

消息:/pool manager/regressionPoolMachine/backfillMachineTags

状态:请求的资源不可用

我还试着做:

<g:form url="[action:'backfillMachineTags',controller:'RegressionPoolMachineController']">

但是找不到类似的404

我是否缺少连接窗体和控制器的步骤

除了“action”属性之外,尝试向表单中添加“controller”属性。您可以使用url而不是控制器和操作,但您需要
url=“${createLink(controller:“myController”,action:“myAction”)}”
而不是此处显示的内容

供参考:


您还可以在浏览器中查看生成的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>

再解释一下:默认情况下,控制器是让您进入页面的任何控制器。所以它是可选的,但强烈推荐(以我的经验来说),因为您可能会在项目中稍后从其他路径访问该页面,并且指定控制器不会有任何伤害!
<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>