当前位置: 首页 > 知识库问答 >
问题:

从Rest控制器提交的更改响应

轩辕鸿祯
2023-03-14

我尝试使用过滤器和拦截器来修改从控制器方法提交的响应,但我无法这样做,因为在执行过滤器或拦截器之前提交了响应。我知道我们还有另一种选择,但这不是我正确的地方,因为目的是根据HTTP状态修改响应。如果有人有想法,请告诉我,我如何通过Spring启动和Rest来实现

共有1个答案

赵嘉赐
2023-03-14

是的,你可以做到。只需创建一个类,比如XYZ,你必须创建一个拦截器,然后使该类扩展HandlerIntericetor适配器类。据我所知,这个类有四个你可以覆盖的方法,如下所示:

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

因此,根据您的需要,您可以使用最后一种方法,即:afterCompletion(...) 方法,因为当我们准备好将视图呈现给客户端时,此方法会被执行。
然后,您必须将该类XYZ注册为内部bean

 类似资料:
  • 我使用的是spring boot V1.3.2 我尝试创建自定义注释,它通过添加RequestMapping来扩展RestController。这里有一个例子,但它不起作用。

  • 在本文章教程中,我们将演示如何查看 Git 存储库的文件和提交文件记录,并对存储库中的文件作修改和提交。 注意:在开始学习本教程之前,先克隆一个存储库,有关如何克隆存储库,请参考: http://www.yiibai.com/git/git_clone_operation.html 在上一步中,我们已经修改了 main.py 文件中的代码,在代码中定义了两个变量并提交代码,但是要再次添加和修改ma

  • 我试着像FOSRestBundleByExample/blob那样做。 我的行动: 不过,我有以下回应: 控制器必须返回一个响应(给定对象(FOS\RestBundle\View\View))。 我发现我可以在配置中将view\u response\u listener更改为true,但我有: 无法找到模板""。 有什么想法吗? 谢谢你,卡米尔

  • 问题内容: 我已经使用像这样的控制器构建了json REST服务: 它工作正常,但现在我需要修改所有响应,并向所有响应添加“状态”和“消息”字段。我已经阅读了一些解决方案: 从某个特定类的所有控制器方法对象返回,例如RestResponse,它将包含“ status”和“ message”字段(但这不是通用解决方案,因为我将不得不修改所有控制器并以新样式编写新控制器) 截取具有方面的所有控制器方法

  • 但是,当我返回列表时,就像这段代码: 对于完全相同的API的列表返回类型的响应是正确的响应: [{“SellingPrice”:23000,“ID”:1,“Version”:1,“CreatedOn”:“25Feb 2019,05:53”,“LastUpdatedOn”:“25Feb 2019,05:53”}]

  • 如果可以从Spring返回,我很好奇 这样做可以吗?我试过了,Spring返回的不是流的值。 我应该继续返回