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.
ParametersParameters:
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