如何使用请求主体和方法PUT在spring控制器中传递两个自定义类型的参数

罗德里格斯:

用户在这里正常地传递给该方法:

@PutMapping
    @RequestMapping("/update_user")
    public String update(@RequestBody List<CustomUser>users) {
        return ......
    }   

邮递员PUT请求正文:

    [
    {"name":"Name1"},
    {"name":"Name2"}
    ]

但是在这里我收到一个错误:“无法解析CustomUser类型的参数1”:

@PutMapping
    @RequestMapping("/update_user")
    public String update(@RequestBody CustomUser user1, CustomUser user2) {
        return ......
    }

邮递员PUT请求正文:

    {
    "user1":{"name":"Name1"},
    "user2":{"name":"Name2"}
    }

我究竟做错了什么?

清醒:

带注释的RequestBody带参数的参数应可容纳整个请求并绑定到一个对象,因此,您基本上只需要使用一个对象

现在,您可以像这样将它们包裹起来

public class Payload {
    CustomUser user1;
    CustomUser user2;
    
    //getters & setters
}

并将其用于 RequestBody

@PostMapping
@RequestMapping("/update_user")
public String update(@RequestBody Payload users) {
    return ......
}

或者你可以使用一个Map<String, CustomUser>用于RequestBody

@PostMapping
@RequestMapping("/update_user")
public String update(@RequestBody Map<String, CustomUser> users) {
    //you can access like this
    
    CustomUser user1 = users.get("user1");
    CustomUser user2 = users.get("user2");
}

需要注意的另一件事是,您正在按POST请求进行映射,但注释中显示“ PUT”。还要检查一下。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在spring mvc中自定义绑定请求参数和filed在控制器方法bean的接受范围内

使用jQuery将yii2 ajax请求中的两个参数传递给控制器

导航控制器中的两个不同的自定义转换

Spring Boot Rest控制器未将请求主体转换为自定义对象

如何在Spring控制器方法参数(例如@ RequestParam,Model)中添加自定义参数?

如何将这两个参数传递给控制器的动作方法?

如何在路由控制器中传递两个参数

使用 Python 中的自定义方法填充矩阵主体时,从两个列表中创建矩阵

根请求的自定义响应通过RepositoryRestResource-s和常规控制器在Spring REST HATEOAS中

如何在ASP.NET MVC中的控制器中使用自定义方法

我有两个控制器A和B。如何在A中使用B中的方法?

哪些参数要传递到Angular JS自定义指令控制器中?

如何将两个参数传递给 ASP.NET Core MVC 中的控制器?

如何将两个或多个参数传递给 Codeigniter 的默认控制器?

Spring Data Rest:如何在HAL浏览器中公开自定义Rest控制器方法

在没有 GET/POST 请求参数的情况下将变量传递给自定义控制器中的模板

如何在sails.js 中对API 请求调用自定义控制器?

如何在 laravel 控制器的 URL 请求中添加自定义变量?

通过两个步骤传递数据-自定义字段映射器和自定义Tasklet

调用对象并将其传递给控制器中的自定义方法

自定义控制器方法,路线和ERB

Rails / ActiveAdmin - 如何将自定义数据从控制器传递到内容中

如何使用 Phoenix 表单在控制器的 Absinthe @graphql 突变属性中填充自定义类型?

在拦截器的Spring MVC控制器方法上使用自定义注释

如何在SAP UI中的控制器中定义自定义控制器?

如何在Swift中合并两个自定义类型数组并删除重复的自定义类型项?

在API控制器中调用自定义方法

如何自定义安全注释添加到Spring MVC的控制器方法

如何创建可以传递两个输入和 tf.matmul 的自定义层