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 def theShining = new Book(title: 'The Shining', author: 'Stephen King') render(template: "book", model: [book: theShining])

// 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 def theShining = new Book(title: 'The Shining', author: 'Stephen King') render(template: "book", bean: theShining)

// render the view with the specified model def theShining = new Book(title: 'The Shining', author: 'Stephen King') render(view: "viewName", model: [book: theShining])

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