Grails - 依赖于内容类型的afterInterceptor

时间:2011-11-04 21:41:52

标签: json grails

我可以根据内容类型设置控制器afterInterceptor吗?

示例:如果传入请求类型为application / json,则仅调用afterInterceptor;否则不要调用afterInterceptor

我找不到方法,并且“withFormat”闭包方法在每个动作上都很麻烦。

我想仅在传入请求类型为json时才将模型转换为json。

或者,还有其他方法可以实现我的目标吗?

提前致谢, 托德

1 个答案:

答案 0 :(得分:0)

如果请求内容类型不是JSON,您可以在 afterInterceptor 中添加一个保护子句。

def afterInterceptor = { model ->
    if (request.getHeader('Content-Type')?.startsWith('application/json')) {
        return
    }
    //do your json stuff here
}

或者,如果您对传入的 接受 标题感兴趣,那么您可以使用

if (request.format != 'JSON') return