有时它很容易的渲染来自创建控制器小块文本或者代码的响应(通常使用Ajax应用程序)。
因为,使用高度灵活的 render方法:render "Hello World!"
上面的代码,在响应中写入 "Hello World!"文本, 其他的示例包括:// write some markup
render {
for(b in books) {
div(id:b.id, b.title)
}
}
// render a specific view
render(view:'show')
// render a template for each item in a collection
render(template:'book_template', collection:Book.list())
// render some text with encoding and content type
render(text:"<xml>some xml</xml>",contentType:"text/xml",encoding:"UTF-8")
如果,你打算使用Groovy的MarkupBuilder来产生html,可以使用render来避免html元素与Grails标签之间的命名冲突。
例如:def login = {
StringWriter w = new StringWriter()
def builder = new groovy.xml.MarkupBuilder(w)
builder.html{
head{
title 'Log in'
}
body{
h1 'Hello'
form{
}
}
}
def html = w.toString()
render html
}
实际上调用 form标签 (将返回一些文本,而忽略MarkupBuilder). 为了正确的输出元素,使用下面这些:def login = {
// …
body{
h1 'Hello'
builder.form{
}
}
// …
}