Форма отправки 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.

теперь каждый раз, когда я нажимаю "Отправить", приложение перенаправляется на страницу с ошибкой, сообщая мне, что страница не найдена.

может ли кто-нибудь сказать мне, что мне не хватает / что я делаю не так?


person Muhammad Bekette    schedule 01.01.2018    source источник


Ответы (1)


Я думаю, проблема связана с вашим синтаксисом в атрибуте form url, вы можете попробовать следующий подход:

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

Кроме того, вам не нужно специально отправлять params или myCheckbox, поскольку они будут отправлены автоматически.

Если вы хотите отправить дополнительные значения, вы можете использовать оператор распространения следующим образом:

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

Наконец, я думаю, вам нужно использовать g:submitButton, а не g:actionSubmit

<g:submitButton value="Subscribe" name="subscribe" />
person Mike W    schedule 01.01.2018