Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 从rest控制器提交的更改响应_Spring_Spring Boot_Spring Restcontroller_Spring Rest - Fatal编程技术网

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(...)