# render

## Purpose

To render different forms of responses from simple text responses, to view and templates.

## Examples

    // renders text to response
    render "some text"// renders text for a specified content-type/encoding
    render(text:"<xml>some xml</xml>",contentType:"text/xml",encoding:"UTF-8")// render a template to the response for the specified model
    render(template:"book",model:[book:new Book(title:'The Shining',author:'Stephen King')])// render each item in the collection using the specified template
    render(template:"book",collection:[b1, b2, b3])// render a template to the response for the specified bean
    render(template:"book",bean:new Book(title:'The Shining',author:'Stephen King'))// render the view with the specified model
    render(view:"viewName",model:[book:new Book(author:'Stephen King')])// render the view with the controller as the model
    render(view:"viewName")// render some markup to the response
    render {
        div(id:"myDiv", "some text inside the div")
    }// render some XML markup to the response
    render(contentType:"text/xml") {
        books {
             for(b in books) {
                book(title:b.title,author:b.author)
             }
        }
    }// render a JSON ( http://www.json.org ) response with the builder attribute:
    render(contentType:"text/json") {
    	book(title:b.title,author:b.author)}// render with status code
    render(status: 503, text: 'Failed to update book ${b.id}')// Automatic marshalling of XML and JSON
    import grails.converters.*
    …
    render Book.list(params) as JSON
    render Book.get(params.id) as XML

## Description

A multi-purpose method for rendering responses to the client which is best illustrated with a few examples! Warning, as of Grails 0.5, this method does not always support multiple parameters. For example, if you specify both collection and model, the model parameter will be ignored. Parameters

Parameters:

- `text` (optional) - The text to render
- `builder` (optional) - The builder to use when rendering markup
- `view` (optional) - The view to delegate the rendering to
- `template` (optional) - The template to render
- `var` (optional) - The name of the variable to be passed into a template, defaults to the groovy default argument 'it' if not specified
- `bean` (optional) - The beanto use in rendering
- `model` (optional) - The model to use in rendering
- `collection` (optional) - For rendering a template against each item in a collection
- `contentType` (optional) - The contentType of the response
- `encoding` (optional) - The encoding of the response
- `converter` (as single non-named first parameter) - A Converter that should be rendered as Response
- `plugin` (optional) - The plug-in to look for the template in
- `status` (optional) - The HTTP status code to use