显示Grails字段错误

mh3*_*377 15 error-handling grails grails-validation

有谁知道如何fieldError在下面的例子中打印出来.

对于每个有错误的项目,我想打印我在messages.properties文件中定义的自定义错误消息

所有这一切都是打印默认错误代码

item.errors?.allErrors?.each{ 
  println it.toString() 
}
Run Code Online (Sandbox Code Playgroud)

我已经看到了其他示例,您可以在其中查找字段的错误代码,例如

it.getFieldError('title').code
Run Code Online (Sandbox Code Playgroud)

但我想将默认消息转换为我的新错误消息并打印出来.

Bur*_*ith 21

您需要访问messageSource bean,例如

def messageSource
Run Code Online (Sandbox Code Playgroud)

在您的控制器或服务中.然后您可以使用

def locale = Locale.getDefault()
for (fieldErrors in bean.errors) {
   for (error in fieldErrors.allErrors) {
      String message = messageSource.getMessage(error, locale)
   }
}
Run Code Online (Sandbox Code Playgroud)