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