renderErrors
Purpose
Allows rendering of errors in different formats (at the moment only an HTML list is implemented )Examples
Render a list for the "book" bean:<g:renderErrors bean="${book}" as="list" />
Render a list for the title field of the "book" bean:<g:renderErrors bean="${book}" as="list" field="title"/>
Description
Attributes
as
(optional) - What to render it as current options are "list". Defaults to "list" if not specified.
bean
(optional) - The name of the bean to check for errors
model
(optional) - The name of model, an map instance, to check for errors
field
(optional) - The field within the bean or model to check for errors for
Source
Show Source
def renderErrors = { attrs, body ->
def renderAs = attrs.remove('as')
if(!renderAs) renderAs = 'list' if(renderAs == 'list') {
def codec = attrs.codec ?: 'HTML'
if (codec=='none') codec = '' out << "<ul>"
out << eachErrorInternal(attrs, {
out << "<li>${message(error:it, encodeAs:codec)}</li>"
}
)
out << "</ul>"
}
else if(renderAs.equalsIgnoreCase("xml")) {
def mkp = new MarkupBuilder(out)
mkp.errors() {
eachErrorInternal(attrs, {
error(object:it.objectName,
field:it.field,
message:message(error:it)?.toString(),
'rejected-value':StringEscapeUtils.escapeXml(it.rejectedValue))
})
}
}
}