【问题标题】:Grails 2.x submit form with additional parametersGrails 2.x 提交带有附加参数的表单
【发布时间】:2018-01-01 18:16:58
【问题描述】:

我是 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 的情况下提交带有参数的表单。

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

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

【问题讨论】:

    标签: grails grails-2.0 grails-controller


    【解决方案1】:

    我认为问题在于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" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      相关资源
      最近更新 更多