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进行测试
前端400
后端Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
应该是参数中的[
,]
这两个符号导致的,应该是请求中不允许出现这两个符号吧。
去掉[
,]
这两个符号后,
后端报500Failed to convert value of type 'java.lang.String' to required type 'java.util.List';
需要类型为List的,却传入了String,是在userList出发生的,暂时去掉这个参数,不知道到底能不能传List类型的
将这个参数设为非必须之后,@RequestParam(required = false) List<User> userList,
再次尝试
还是400,不过message原因发生了变化Required String parameter 'something' is not present
所需的参数something没有给,后端需要something这个参数,发现是前端传参的key拼写错误、、、误写为了somethting
,多谢了个t
再来一次
成功了
前端传入字符串类型的List时,不需要加’'引号,否则后段也是包含的,去掉引号。
难到Spring Boot不能够接收自定义类型的List吗???