(Quick Reference)



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


// 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


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


  • 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