2

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

def doSomething(MyCommand cmd) {
    if (cmd.hasErrors()) {
        render ([success: false, error: cmd.errors.getFieldError("myfield")] as JSON)
    }
}

这将打印字段错误的 JSON 表示,但我只想打印已解决的错误消息。我怎样才能做到这一点?

谢谢!

4

3 回答 3

3

啊,我解决了这个问题:

render ([success: false, error: message(error: cmd.errors.getFieldError("myfield"))] as JSON)

之前,我使用 message() 时出错,也许我当时又犯了另一个错误。

于 2012-09-27T15:06:50.017 回答
2

这对我有用

def errMsgList = domainClassObj.errors.allErrors.collect{g.message([error : it])}

于 2015-05-05T09:16:02.320 回答
1

帖子很旧,但这是我的解决方案。

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"]
于 2017-04-03T14:58:26.527 回答