(快速参考)

withFormat

目的

根据传入的请求呈现不同的响应接受标头格式参数或URI扩展名,请参见内容协商了解更多信息

例子

 grails转换器XML

 BookController {

    定义 清单() {
        定义图书列出withFormat htmlbookList书籍js渲染"警惕你好"xml渲染书XML格式

描述

withFormat接受一个Closure,其中包含与您要响应的不同内容类型相对应的方法

withFormat htmlbookList书籍js渲染"警惕你好"xml渲染书XML格式

在这里我们调用三种方法html, jsXML文件使用在中配置的mime类型名称grails应用配置会议应用yml看到内容协商有关更多信息,请致电html365bet地区接受模型Map传递给视图365bet地区搜索称为grails应用程序视图书籍列表html gsp如果找不到,则回退到grails应用程式观看次数清单gsp.

请注意,如果请求格式为全部,或者在accept标头中有多个内容类型具有相同的q等级,则类型的顺序很重要。后一种情况更令人困惑,因为只有当您拥有类型处理程序的具有最高q等级的多个内容类型时,它才成立您有多个与q等级相匹配的类型处理程序。例如,如果请求的文本html和应用程序xml的q等级为q,则此代码

withFormat XML HTML

将对请求使用xml类型处理程序

要注意的另一个重要因素是withFormat方法处理响应365bet地区格式而不是请求格式从365bet地区开始,有一个单独的格式withFormat可用的方法您可以使用它来处理由内容类型请求的标头

请求withFormat表单xml json
请求格式形成用于处理内容协商中的表单提交,而不是html.

如果您需要延迟执行模型,则可以传递Closure而不是Map

withFormat htmlbookList: 清单

这样html只有在html格式匹配

365bet地区365bet地区会忽略HTTP Accept标头,除非您添加grails mime使用accept标头为true设置为您的应用程序文件withFormat没有该设置,将完全不受Accept标头的影响