Grails 1.1 Web层 - Models(模型)与Views(视图) - 渲染响应

有时它很容易的渲染来自创建控制器小块文本或者代码的响应(通常使用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{ } } // … }