服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 使用@RequestParam 绑定List参数

使用@RequestParam 绑定List参数

2021-11-23 12:45天糊十三幺 Java教程

这篇文章主要介绍了使用@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;
}

使用@RequestParam 绑定List参数

使用@RequestParam 绑定List参数

    @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中的数据并组装为对象

使用@RequestParam 绑定List参数

@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());
    }

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

原文链接:https://www.cnblogs.com/tyoutetu/p/10492120.html

延伸 · 阅读

精彩推荐
  • Java教程如何使用java写Student类的功能

    如何使用java写Student类的功能

    这篇文章主要介绍了如何使用java写Student类的功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可...

    小熊同鞋8042021-09-01
  • Java教程基于@JsonFormat的导包问题

    基于@JsonFormat的导包问题

    这篇文章主要介绍了关于@JsonFormat的导包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    别动我的猫4942021-11-12
  • Java教程Spring Boot 启动、停止、重启、状态脚本

    Spring Boot 启动、停止、重启、状态脚本

    今天给大家分享Spring Boot 项目脚本(启动、停止、重启、状态),通过示例代码给大家介绍的非常详细,需要的朋友参考下吧...

    Java技术栈6692021-09-16
  • Java教程Java图像处理工具类

    Java图像处理工具类

    这里给大家分享了一个java常用的图像处理工具类,包含缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等,有需要的小伙伴参考下...

    hebedich2762019-12-09
  • Java教程Java命令设计模式详解

    Java命令设计模式详解

    这篇文章主要为大家详细介绍了Java命令设计模式,对命令设计模式进行分析理解,感兴趣的小伙伴们可以参考一下 ...

    wangxin03144872020-03-27
  • Java教程Spring Boot中自动化配置的利弊以及解决方法

    Spring Boot中自动化配置的利弊以及解决方法

    这篇文章主要给大家介绍了关于Spring Boot中自动化配置的利弊以及解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参...

    翟永超3442020-12-08
  • Java教程详解SpringMVC注解@initbinder解决类型转换问题

    详解SpringMVC注解@initbinder解决类型转换问题

    本篇文章主要介绍了详解SpringMVC注解@initbinder解决类型转换问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    aheizi9562021-04-12
  • Java教程SpringBoot使用JdbcTemplate操作数据库

    SpringBoot使用JdbcTemplate操作数据库

    这篇文章主要介绍了SpringBoot使用JdbcTemplate操作数据库,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    dalaoyang10352021-05-21