2015-10-14 55 views
0

我想寫一個@ExceptionHandler,這樣JSON請求也會在JSON中得到錯誤響應。對於非JSON請求,我希望servlet容器發送其默認的HTML響應。Spring MVC:在@ExceptionHandler中獲取內容協商結果

要做到這一點,我需要做一些內容協商。 Spring MVC通過註釋處理正常的請求,但沒有這樣的註釋可用於@ExceptionHandler s。

我想知道如何以編程方式調用內容協商代碼?

+0

源聽起來很複雜,但也可能創建自定義過濾器springSecurityFilterChain後添加。然後根據請求內容,您可以修改響應內容。 – NikolaB

+0

在第一段中描述了你想要有一個固定的返回類型(實際上是兩個)。但問題是「獲取內容協商結果」,可能是JSON或HTML以外的其他內容。你只需要檢查'Content-Type'頭是'application/json'(或者一個變體)。然後它是一個JSON請求,並返回一個JSON響應。 – zeroflagL

回答