如何使用grails中的动作按钮传递参数

use*_*102 6 grails action submit button params

一直在使用有动作的按钮.我有几个btns,我想知道它的参数.在grails教程中它说它应该是这样的:

 <g:actionSubmit    action="action" value="${message(code: 'default.button.edit.label', default: 'Edit')}" params="['actionTaken':editPhone]"/>
Run Code Online (Sandbox Code Playgroud)

我尝试使用remotelink,submitButton,submitToRemote标签但没有工作.当我尝试在我的控制器中解析它时,我总是得到null:

def action=
    {
        def actionTaken = params.actionTaken
        def employeeId= params.employeeId

        MySession session = MySession.getMySession(request, params.employeeId)
        profileInstance = session.profileInstance

        switch(actionTaken)
        {
            case "editPhone" :
                isEditPhone=true
                break

            case "editEmail" :
                isEditEmail=true
                break
        }
        render(view:"profile", model:[profileInstance:session.profileInstance, isEditPhone:isEditPhone, isEditEmail:isEditEmail])
    }
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我的params代码错了吗?解析params的代码是错误的吗?这只是让我圈起来没有进展.救命.谢谢.

Kev*_*ker 7

Grails的文件没有列出params由接受属性之一actionSubmit.

可以通过利用什么标签注入在控制器的PARAMS列表中选择所需的值实际作用:

def editPhone = { forward(action:'action', params:[actionTaken: 'editPhone'])}
def editEmail = { forward(action:'action', params:[actionTaken: 'editEmail'])}
Run Code Online (Sandbox Code Playgroud)

您也可能只想将完全独立的逻辑编码到editPhoneeditEmail操作中,如果这样可以使您的代码更清晰.

更新的查看代码:

<g:actionSubmit action="editPhone" value="${message(code: 'default.button.edit.label', default: 'Edit')}" />
Run Code Online (Sandbox Code Playgroud)