Отображение ошибок полей 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)
}
}