使用@RequestParam 绑定List参数

 更新时间:2021年08月17日 15:09:02   作者:天糊十三幺  
这篇文章主要介绍了使用@RequestParam 绑定List参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@RequestParam 绑定List参数

今天遇到了一个问题

比较尴尬。我写了一个接口,参数用@RequestParam接收,是一个List<String>。用postman可以正常的调用。

但是其他组的开发用feignClient就无法调通,报400。

苦思冥想不清楚问题原因。

后来想到应该是请求头的原因

假如Content-Type 是 application/json,前台传来的是json的话,用@RequestParam就接收不到。需要使用@RequestBody转化为对象。

顺便记录一下使用postman调用参数为List<String>且用@RequestBody接收的接口的方法。

.["111","222"]

就这样写就可以了。

参数如何接受List集合

  • RequestBody 接收的是请求体里面的数据;
  • RequestParam 接收的是key-value里面的参数,

在PUT/PATCH/POST 请求的正文(request bodies)中使用JSON格式数据,

而不是使用 form 表单形式的数据。这与我们使用JSON格式返回请求相对应,

接受json字符串中的数据(使用@RequestBody注解)

1、使用**@RequestBody**接受请求体中的json数据,将请求体中的JSON数据映射到List对象;

2、请求方式为POST

注意: 同一个方法里,@RequestBody(接收的是请求体里面的数据)与@RequestParam(接收的是key-value里面的参数)可以同时存在;

示例

@Data
public class User {
    private Integer id;
    private String name;
    private String password;
}

在这里插入图片描述

在这里插入图片描述

    @PostMapping("saveHomeworkRecords")
    public ResponseResult saveStudentHomeworkRecords(@RequestBody(required = true) List<User> users){
    	// 默认required=true,当List为空时会抛异常,导致无法进入方法体。required= false:表示当映射的List为空时不做异常捕抓;
        System.out.println(users);
        return ResponseResult.success("msg","");
    };

@RequestBody接收请求体中的json数据

不加注解接收URL中的数据并组装为对象

在这里插入图片描述

@Data
public class User {
    Long id;
    String username;
    Integer age;
}
@RestController
public class UserController {
    @PostMapping("saveUser")
    public ResponseResult saveUser(@RequestBody User user, @RequestParam("arrays") List<String > arrays, User  user1) {
        StringBuffer        sb   = new StringBuffer();
        for (String s:
             arrays) {
            sb.append(s+"   ");
        }
        return ResponseResult.success("插入成功!", sb.toString()+user.toString()+ user1.toString());
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot与Spring中数据缓存Cache超详细讲解

    SpringBoot与Spring中数据缓存Cache超详细讲解

    我们知道内存读取速度远大于硬盘读取速度,当需要重复获取相同数据时,一次一次的请求数据库或者远程服务,导致在数据库查询或者远程方法调用上小号大量的时间,最终导致程序性能降低,这就是数据缓存要解决的问题,学过计算机组成原理或者操作系统的同学们应该比较熟悉
    2022-10-10
  • java8从list集合中取出某一属性的值的集合案例

    java8从list集合中取出某一属性的值的集合案例

    这篇文章主要介绍了java8从list集合中取出某一属性的值的集合案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Springboot自带定时任务实现动态配置Cron参数方式

    Springboot自带定时任务实现动态配置Cron参数方式

    这篇文章主要介绍了Springboot自带定时任务实现动态配置Cron参数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 详解Java如何实现防止恶意注册

    详解Java如何实现防止恶意注册

    恶意注册通常是指使用自动化脚本或者机器人在短时间内进行大量的注册行为,这种行为会对系统造成压力,甚至会导致系统瘫痪。所以本文为大家总结了一些防止恶意注册的方法,需要的可以参考一下
    2023-04-04
  • mybatis3.4.6 批量更新 foreach 遍历map 的正确姿势详解

    mybatis3.4.6 批量更新 foreach 遍历map 的正确姿势详解

    这篇文章主要介绍了mybatis3.4.6 批量更新 foreach 遍历map 的正确姿势详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Java中字符编码格式详解

    Java中字符编码格式详解

    在java应用软件中,会有多处涉及到字符集编码,有些地方需要进行正确的设置,有些地方需要进行一定程度的处理。本文主要给大家讲解java中字符的编码格式等相关问题
    2016-03-03
  • idea注解参数换行时间日期格式设置方法

    idea注解参数换行时间日期格式设置方法

    这篇文章主要介绍了idea注解参数换行时间日期格式设置方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 使用java实现telnet-client工具分享

    使用java实现telnet-client工具分享

    这篇文章主要介绍了使用java实现telnet-client工具,需要的朋友可以参考下
    2014-03-03
  • Vscode中不再支持JDK8的原因分析及解决方案

    Vscode中不再支持JDK8的原因分析及解决方案

    这篇文章主要介绍了Vscode中不再支持JDK8的解决方案,本文给大家分享三种解决方案,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • java开发分布式服务框架Dubbo服务引用过程详解

    java开发分布式服务框架Dubbo服务引用过程详解

    这篇文章主要为大家介绍了java开发分布式服务框架Dubbo服务引用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11

最新评论