2011-11-04 29 views
0

我可以根據內容類型設置控制器afterInterceptor嗎?Grails - 內容類型依賴afterInterceptor

示例:如果傳入的請求類型爲application/json,則僅調用afterInterceptor;否則不要調用afterInterceptor

我沒有找到一種方法,並且「withFormat」閉包方法在每個動作上都會很麻煩。

我想僅在傳入的請求類型爲json時纔將模型轉換爲json。

或者,還有其他方法可以實現我的目標嗎?

由於提前, 託德

回答

0

您可以添加保護條款,以您的afterInterceptor離開,如果請求的內容類型是不是JSON。

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

或者,如果你真的感興趣的傳入接受頭,那麼你可以使用

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

我們是否有訪問請求的afterInterceptor?我不這麼認爲,但會嘗試一下。 –