欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot 接收List

程序员文章站 2022-05-04 10:09:35
...

后端使用Spring Boot 的@RequestParam 注解接收List类型的值

后端代码

@RestController
@RequestMapping(value = "/test")
public class TestController {

    @GetMapping
    @ResponseBody
    public String test(
            @RequestParam List<User> userList,
            @RequestParam String something,
            @RequestParam List<String> nameList,
            @RequestParam List<Long> idList) {
        userList.forEach(System.out::println);
        System.out.println(something);
        nameList.forEach(System.out::println);
        System.out.println("----------");
        idList.forEach(System.out::println);
        return "OK";
    }
}

使用Postman进行测试
Spring Boot 接收List

前端400

后端
Spring Boot 接收List
Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

应该是参数中的[] 这两个符号导致的,应该是请求中不允许出现这两个符号吧。

去掉[]这两个符号后,
Spring Boot 接收List后端报500
Failed to convert value of type 'java.lang.String' to required type 'java.util.List';
需要类型为List的,却传入了String,是在userList出发生的,暂时去掉这个参数,不知道到底能不能传List类型的

将这个参数设为非必须之后,
@RequestParam(required = false) List<User> userList,
再次尝试
Spring Boot 接收List还是400,不过message原因发生了变化
Required String parameter 'something' is not present
所需的参数something没有给,后端需要something这个参数,发现是前端传参的key拼写错误、、、误写为了somethting,多谢了个t

再来一次
成功了
Spring Boot 接收ListSpring Boot 接收List
前端传入字符串类型的List时,不需要加’'引号,否则后段也是包含的,去掉引号。
Spring Boot 接收List
Spring Boot 接收List
难到Spring Boot不能够接收自定义类型的List吗???