我的控制器方法中有一个验证命令对象,当验证失败时,我想打印出呈现为JSON的错误消息:
def doSomething(MyCommand cmd) {
if (cmd.hasErrors()) {
render ([success: false, error: cmd.errors.getFieldError("myfield")] as JSON)
}
}
这会打印字段错误的JSON表示,但我只想打印已解决的错误消息。我怎样才能做到这一点?
谢谢!
答案 0 :(得分:3)
render ([success: false, error: message(error: cmd.errors.getFieldError("myfield"))] as JSON)
之前,我使用message()收到错误,也许我之后又犯了一个错误。
答案 1 :(得分:2)
这对我有用
def errMsgList = domainClassObj.errors.allErrors.collect{g.message([error : it])}
答案 2 :(得分: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"]