2011-08-22 48 views
1

看起來好像Grails中,默認的contentType用於渲染JSON響應使用類似下文的時候:更改內容類型,而用「作爲JSON」渲染響應

render Book.list(params) as JSON 

是應用程序/ JSON

當然有定義的內容類型更longhanded方式:

render(contentType:"text/json") { 
    book(title:b.title,author:b.author) 
} 

是否有使用簡寫方式方法,並仍然得到迴應內容類型的「T EXT/JSON「?從here

回答

4

採取的例子在你的Grails config.groovy可以設置以下MIME類型屬性:

注意。

grails.mime.types = [ html: ['text/html','application/xhtml+xml'], 
       xml: ['text/xml', 'application/xml'], 
       text: 'text/plain', 
       js: 'text/javascript', 
       rss: 'application/rss+xml', 
       atom: 'application/atom+xml', 
       css: 'text/css', 
       csv: 'text/csv', 
       all: '*/*', 
       json: ['application/json','text/json'], 
       form: 'application/x-www-form-urlencoded', 
       multipartForm: 'multipart/form-data' 
] 

嘗試更改爲JSON屬性值的列表的順序['text/json','application/json']

+0

它不'噸wokr因爲我們有: /** * 。指導JSON作家到的OutputStream中HttpServletResponse的並設置內容類型爲application/JSON * * @參數響應的HttpServletResponse * @throws的ConverterException */ 公共無效渲染(HttpServletResponse的響應)拋出的ConverterException { response.setContentTyp e(GrailsWebUtil.getContentType(「application/json」,encoding)); 嘗試render(response.getWriter()); (IOException e){ } throw new ConverterException(e); } } in JSON.java – dementiev