2017-02-17 45 views
0

我試圖使用過濾器和攔截器來修改從控制器方法提交的響應,但是我無法執行響應,因爲在執行過濾器或攔截器之前已提交響應。 我知道我們有ResponseBodyAdvice的另一個選項,但那不是我要做的正確的地方,因爲其目的是根據HTTP狀態修改響應。如果有任何人有想法,請讓我知道,我怎麼能實現與春季引導和休息從其他控制器提交的更改響應

+0

「根據HTTP狀態修改響應」。你如何得到這個地位?請發佈其中一種控制器方法。還要描述你想在該控制器方法的響應中做什麼。 –

+0

@RamanujanR我可以響應Filter和Interceptor中的響應對象的狀態,但不響應ResponseBodyAdvice – Nadendla

回答

0

是的,你可以做到這一點。只需創建一個類,並說您必須製作一個攔截器,然後讓該類擴展爲HandlerInterceptorAdapter類。至於我記得,這個類有四種方法,你可以重寫,這是如下:

preHandle(...) 
postHandle(...) 
afterConcurrentHandlingStarted(...) 
afterCompletion(...) 

所以,根據你的需要,你可以使用即最後一個方法:afterCompletion(...)方法,因爲, ,當我們準備將視圖呈現給客戶端時,這個方法就會被執行。
然後,如果使用xml模式,則必須在<mvc:interceptor>標記內將該類XYZ註冊爲bean。

+0

正如我所提到的,在執行aftercompletion之前,響應被提交。因此,一旦響應提交,我們不能做任何事情 – Nadendla

+0

然後使用postHandle()方法...對視圖進行最終更改.. @ user3004406 –