Validation Grails验证:以字符串形式从错误对象获取消息

Validation Grails验证:以字符串形式从错误对象获取消息,validation,grails,Validation,Grails,我的控制器方法中有一个validating command对象,当验证失败时,我想打印错误消息,呈现为JSON: def doSomething(MyCommand cmd) { if (cmd.hasErrors()) { render ([success: false, error: cmd.errors.getFieldError("myfield")] as JSON) } } 这将打印字段错误的JSON表示,但我只想打印已解决的错误消息。我怎样才能做到

我的控制器方法中有一个validating command对象,当验证失败时,我想打印错误消息,呈现为JSON:

def doSomething(MyCommand cmd) {
    if (cmd.hasErrors()) {
        render ([success: false, error: cmd.errors.getFieldError("myfield")] as JSON)
    }
}
这将打印字段错误的JSON表示,但我只想打印已解决的错误消息。我怎样才能做到这一点


谢谢

啊,我解决了这个问题:

render ([success: false, error: message(error: cmd.errors.getFieldError("myfield"))] as JSON)
以前,我在使用message()时出错,可能是我又犯了一个错误。

这对我很有用


def errMsgList=domainClassObj.errors.allErrors.collect{g.message([error:it])}
这篇文章很旧,但这是我的解决方案

import org.codehaus.groovy.grails.commons.ApplicationHolder

def myCommand = new MyCommand()

myCommand.errors.reject('Foo error')
myCommand.errors.reject('Bar message')
myCommand.errors.reject('myCommand.myfield.nullable')

def appHolder = ApplicationHolder.application.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
def list = myCommand.errors.allErrors.collect{appHolder.g.message([error: it])}
list
结果:

["Foo error","Bar message","Property myfield cannot be null"]

虽然您已经解决了问题,但是这个链接很有用:我可以问一下code
g.message上的变量
g
在哪里吗([error…
来自?它是未定义的。
g
是标记库。如果您调用controller中的任何标记都可以工作,请不要担心eclipse是否无法识别它