小编Arv*_*ind的帖子

一旦在控制器操作中触及response.setContentType,则在过滤器中无法使用grails response.addHeader或setHeader

在我的控制器操作中,我尝试将响应的contentType设置如下.

class MyController {
   def rss = {
       response.setContentType('text/xml')
       //I even tried setHeader('contentType') and also render(contentType:'text/xml',...)
       render(template:'/displayRss', model:[:])
   }
}
Run Code Online (Sandbox Code Playgroud)

在过滤器中,我试图为所有控制器和动作参数设置标题

class Filter {
   def filters = {
      all(controller:'*', action:'*'){
         after = { 
            response.setHeader('Cache-Control', 'no-cache')
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

除了修改响应contentType的操作之外,为所有其他操作添加了标头.似乎response.isCommitted()仅在该操作中返回true.我不理解渲染的基础......?

如果我使用render(view:'/ abc')而不是view(template:'/ abc',model:[:])也不是这种情况

提前致谢

grails grails-filters

6
推荐指数
1
解决办法
2449
查看次数

标签 统计

grails ×1

grails-filters ×1