Grails 2.x提交带有其他参数的表单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Grails 2.x提交带有其他参数的表单相关的知识,希望对你有一定的参考价值。

我是grails的新手我想制作一个表格,在gsp中提交形式参数和其他参数

gsp看起来像这样:

<g:form url="action:'myAction',controller:'myTerms', params:[params: params, myCheckbox: myCheckbox]">
                    <p><g:checkBox id="myCheckbox" name="myCheckbox" value="true" checked="checked"/><g:message code="terms.agree"/><a style="color: #ed1c24" href="/xyz"><g:message code="terms.termsConditions"/></a><g:message code="terms.ofService"/></p>
                    <g:actionSubmit value="Subscribe" />
</g:form>

它应该提交给名为MyTermsController的控制器以执行以下操作:

def myAction(){
        if(/*condition 1*/){
            try{
                //code
                if (/*condition 2*/) {
                    //more code
                }
            }catch (AlreadyPurchasedException ape){
                redirect(controller: "controllerA", action: "showXhtml", params:params)
            }
            redirect(controller: "controllerB", action: "handlePaymentXhtml", params: params)
        }else if(/*condition 3*/){
            redirect(controller:"controllerC", action:"purchaseXhtml", params:params)
        }
    }

我想要做的是提交一个没有使用javascript的params表单。

现在每次按提交时,应用程序都会重定向到错误页面,告诉我找不到该页面。

谁能告诉我我错过了什么/做错了什么?

答案

我认为问题在于form url属性中的语法,您可以尝试以下方法:

<g:form controller="mTerms" action="myAction">

此外,您无需专门提交paramsmyCheckbox,因为它们将自动提交。

如果您想提交其他值,可以使用扩展运算符,如下所示:

<g:form controller="mTerms" action="myAction" params="[aKey: 'aValue', *:params]">

最后我认为你需要使用g:submitButton而不是g:actionSubmit

<g:submitButton value="Subscribe" name="subscribe" />

以上是关于Grails 2.x提交带有其他参数的表单的主要内容,如果未能解决你的问题,请参考以下文章

grails远程表单,多次提交,使用javascript

提交 Grails 表单都有哪些方便的技巧?

带有固定按钮的片段

Django:从其他表单传递参数以提交按钮

请求参数为空,在提交带有图像的表单数据 AJAX 后

提交带有上传图片选项的表单时出错。 PHP 代码点火器