Grails supports content negotiation:
问题是,当它从多个地方获取内容信息时,它会做什么,特别是当它们彼此不一致时?
例如,如果Grails收到如下所示的请求会发生什么:
URL: http://example.com/book/list.html?format=json
Accept: application/xml
Accept标头将解析为xml,URI扩展将解析为html,参数将解析为json。
这会做什么:
import grails.converters.*
class BookController {
def list() {
def books = Book.list()
withFormat {
html bookList: books
xml { render books as XML }
json { render books as JSON }
}
}
}
答案 0 :(得分:5)
对于Grails 2.0.0RC3,以下内容将返回 html 块。
curl -v -H "Accept: application/xml" http://localhost:8080/book/book/list.html?format=json
优先顺序为:
请注意,要使用Accept标头,您必须在 grails-app / conf / Config.groovy 文件中更改以下参数(默认为false):
grails.mime.use.accept.header = true