ttt*_*ttt 29 grails grails-controller
我刚刚意识到,对于Grails控制器,还有另一种渲染方法"响应".
如果我们想在控制器中渲染视图,则response和render方法之间有什么区别.
ves*_*ous 35
响应方法使用内容协商来根据请求的"ACCEPT"标头响应最合适的内容类型.
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8, application/json
Run Code Online (Sandbox Code Playgroud)
这样,您网站的消费者可以选择他们希望如何返回数据.如果要强制使用特定的返回类型,这可能不是最佳选择.例如:您正在构建REST API并且只想返回json或xml,如果用户请求test.html,那么它们可能会以您不希望支持的格式返回您的数据.否则,响应可以是一种简单的方法来支持多种返回格式,而无需单独编程.
Render显式定义了您希望返回数据的格式:
(文档中的示例)
render Book.list(params) as JSON
render Book.get(params.id) as XML
// render with status code
render(status: 503, text: 'Failed to update book ${b.id}')
Run Code Online (Sandbox Code Playgroud)
更多信息:
回应:http://grails.org/doc/latest/ref/Controllers/respond.html 渲染:http://grails.org/doc/latest/ref/Controllers/render.html
| 归档时间: |
|
| 查看次数: |
15470 次 |
| 最近记录: |