Отображение ошибок полей Grails

Кто-нибудь знает, как я могу получить fieldError для печати в приведенном ниже примере.

для каждого элемента с ошибкой, я хотел бы напечатать собственные сообщения об ошибках, которые я определил в файле messages.properties

на данный момент все это означает, что вы печатаете коды ошибок по умолчанию

item.errors?.allErrors?.each{ 
  println it.toString() 
}

Я видел другие примеры, где вы можете найти код ошибки для поля, например.

it.getFieldError('title').code

но я хотел бы преобразовать сообщение по умолчанию в новое сообщение об ошибке и напечатать это.

Ответы

Ответ 1

Вам нужен доступ к сообщению Source bean, например. с

def messageSource

в вашем контроллере или службе. Затем вы можете получить доступ к сообщениям с помощью

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