gpt4 book ai didi

java - Spring MVC 中的条件@RequestBody

转载 作者:行者123 更新时间:2023-12-01 11:44:04 25 4
gpt4 key购买 nike

我有一个普通的 Spring MVC Controller ,它返回模型和 View 。这很好用。但现在我们正在转向纯 REST 架构,其中服务器仅通过 JSON 进行通信。

我不是改造一切,而是尽可能地重复使用现有的 Controller ,这就是我能做的

我可以通过包含 ContentNegotiatingViewResolver 来重复使用对相同 Controller 的 GET 请求。所以现在同一个 Controller 可以返回一个jsp和一个基于accept header转换成json的模型。

现在另一部分是我需要一些帮助的POST请求。

要绑定(bind) json 请求,我必须在现有 Controller 上使用 @RequestBody,但我想以与 GET 请求相同的方式有条件地执行此操作。因此,如果接受 header 是 json,则应该使用该消息转换器来绑定(bind)模型,否则使用通常的 html 表单绑定(bind)。

完成此操作后,如何处理我的场景的 BindingResult 对象?

总结一下我的问题:

  1. 我们可以根据 Accept header 有条件地使用 @RequestBody
  2. 是否有任何配置可以自动将表单绑定(bind)错误对象(在 Spring MVC Controller 内)转换为基于 Accept header 的 json 响应。

最佳答案

查看 @RequestMapping 属性的 consumesproducts 属性。您可以使用具有不同 consume 的同一方法的两个版本,其中一种可以采用 @RequestBody,另一种则不能。

抱歉,无法真正帮助您解决问题的第二部分。

关于java - Spring MVC 中的条件@RequestBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29304141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com