从选择标签中选择多个值 - Grails [英] Selecting multiple values from select tag - Grails

查看:16
本文介绍了从选择标签中选择多个值 - Grails的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你能告诉我如何从

<g:select multiple="multiple" ...

我的 create.gsp 中有这个

I have this in my create.gsp

<g:select name="validator.id"  multiple="multiple" optionKey="id" from="${com.project.Validator.list()}" value="${validators}" />

这是在 OperationLogContoller.groovy 中

and this is in OperationLogContoller.groovy

def create = {
    def operationLogInstance = new OperationLog()
    operationLogInstance.properties = params
    operationLogInstance.validator = Validator.get(params.validatorId)
    operationLogInstance.operation = Operation.get(params.operationId)
    return [operationLogInstance: operationLogInstance]
}


def save = {
    def operationLogInstance = new OperationLog(params)
    println(params.validator)
    operationLogInstance.validator = Validator.get(params.validator.id);
    if (operationLogInstance.save(flush: true))
        flash.message = "${message(code: 'default.created.message', args: [message(code: 'operationLog.label', default: 'OperationLog'), operationLogInstance.id])}"
}

如果我只从 select 中选择一个,它可以完美运行,但如果我选择两个,我会得到以下异常:

If I select just one from select, it works perfectly but if I select two, I get the following exception:

groovy.lang.MissingMethodException: No signature of method: com.akent.Validator.get() is applicable for argument types: (java.lang.String, java.lang.String) values: [3, 4]
Possible solutions: get(java.lang.Object), getId(), getIp(), getAt(java.lang.String), getAll(), ident()

推荐答案

你的 MME 是因为域类上的 get() 一次只处理一个 id.对于

发送“验证码”获取 | 15天全站免登陆