【问题标题】:Spring REST multiple @RequestBody parameters, possible?Spring REST多个@RequestBody参数,可能吗?
【发布时间】:2011-08-09 06:06:21
【问题描述】:

我已经实现了一个 Spring RESTful Web 服务。使用 Jackson JSON 进行对象映射。我有一个接受两个参数的方法。

public Person createPerson(
    @RequestBody UserContext userContext,
    @RequestBody Person person)

客户端如何构造一个请求,其中多个 JSON 对象将在正文中传递?

这可能吗?

-- 斯里

【问题讨论】:

    标签: java json spring spring-mvc jackson


    【解决方案1】:

    我很确定那是行不通的。可能有一种解决方法,但更简单的方法是引入包装对象并更改您的签名:

    public class PersonContext{
        private UserContext userContext;
        private Person person;
        // getters and setters
    }
    
    
    public Person createPerson(@RequestBody PersonContext personContext)
    

    【讨论】:

    • @Srirangan:workarround 是 PersonContext 类 - 它是某种 DTO
    • 我觉得问这个问题很愚蠢。 HTTP 请求如何有多个“主体”。啊。 2011-我很愚蠢。
    • @Srirangan 别担心,我们都去过那里 :-)
    • @Sri,不过谢谢你的提问,它帮助了我们因为被深陷而不得不快速拿起 Spring。 This question 类似,有更详细的答案,你可能想链接。
    • @nonNumericalFloat 当然,只需使用自定义JsonDeserializer 实现用@JsonDeserialize 注释任何字段
    猜你喜欢
    • 2013-03-04
    • 2016-03-09
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多