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))
                })
            }
        }
    }