Grails 支持来自 3 个不同来源的内容协商:
- 接受标头
- 请求参数(格式)
- URI 扩展
问题是,当它从多个地方获取内容信息时,尤其是当它们彼此不一致时,它会做什么?
例如,如果 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 }
}
}
}