Spring 从rest控制器提交的更改响应
我尝试使用过滤器和拦截器来修改从控制器方法提交的响应,但由于在执行过滤器或拦截器之前提交了响应,因此我无法这样做。Spring 从rest控制器提交的更改响应,spring,spring-boot,spring-restcontroller,spring-rest,Spring,Spring Boot,Spring Restcontroller,Spring Rest,我尝试使用过滤器和拦截器来修改从控制器方法提交的响应,但由于在执行过滤器或拦截器之前提交了响应,因此我无法这样做。 我知道我们有另一个选择ResponseBodyAdvice,但这不是我要做的正确位置,因为目的是根据HTTP状态修改响应。如果有人有想法,请告诉我,我如何使用spring boot和Rest实现这一点是的,你可以做到。只需创建一个类,比如XYZ,您必须创建一个拦截器,然后使该类扩展HandlerInterceptorAdapterclass。据我所知,这个类有四个可以重写的方法,如
我知道我们有另一个选择ResponseBodyAdvice,但这不是我要做的正确位置,因为目的是根据HTTP状态修改响应。如果有人有想法,请告诉我,我如何使用spring boot和Rest实现这一点是的,你可以做到。只需创建一个类,比如XYZ,您必须创建一个拦截器,然后使该类扩展
HandlerInterceptorAdapter
class。据我所知,这个类有四个可以重写的方法,如下所示:因此,根据您的需要,您可以使用最后一种方法,即:
afterCompletion(…)
method,因为当我们准备好将视图呈现给客户端时,将执行此方法。然后,如果您使用的是xml模式,则必须将该类XYZ注册为
标记内的bean。“根据HTTP状态修改响应”。你是怎么得到这个身份的?请发布一个控制器方法。还请描述您希望在该控制器方法的响应中执行的操作。@RamanujanR我可以从筛选器和拦截器中的响应对象中获取响应状态,但不能在我提到的ResponseBodyAdvice中获取响应状态,然后再执行完成后提交响应。所以一旦响应被提交,我们就不能做任何事情了。请使用postHandle()方法。。。要对视图进行最终更改@用户3004406
preHandle(...)
postHandle(...)
afterConcurrentHandlingStarted(...)
afterCompletion(...)