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" and "xml". 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))
                })
            }
        }
    }