传参list用RequestParam报错not allow complex type for query parameter
时间: 2024-01-17 09:05:30 浏览: 252
@RequestParam注解只能用于简单类型的参数传递,如String、int、boolean等基本类型,不能用于复杂类型的参数传递,如List、Map等。
如果要传递复杂类型的参数,可以使用@RequestBody注解将参数转换为对象传递。
例如:
```
@PostMapping("/test")
public Result test(@RequestBody List<String> list) {
// TODO: 处理业务逻辑
}
```
在请求时,需要使用POST方式,并将参数放在请求体中,如:
```
POST /test HTTP/1.1
Content-Type: application/json
["value1", "value2", "value3"]
```
相关问题
RequestParam报错信息
RequestParam报错信息是"RequestParam.value() was empty on parameter 0"和"Required request parameter 'name' for method parameter type String is not present"。<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* [openfeign报错RequestParam.value() was empty on parameter 0](https://blog.csdn.net/lqq404270201/article/details/114894341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* [使用@RequestParam(“name“)注解报错怎么解决](https://blog.csdn.net/weixin_61189391/article/details/128536657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
Required request parameter 'ids' for method parameter type List is not present
你遇到的问题是"Required request parameter 'ids' for method parameter type List is not present"。根据你提供的信息,这个错误是因为在你的后端控制器方法中,参数类型为List的@RequestParam注解指定的请求参数'ids'没有提供。@RequestParam注解用于从请求中获取指定的参数,但是如果请求中没有提供该参数,就会抛出这个错误。
要解决这个问题,你需要确保在发送请求时,包含了名为'ids'的参数。你可以通过在请求的URL中添加'ids'参数,或者在请求的正文中以JSON格式提供'ids'参数值。根据你提供的参考内容,你可以使用@RequestParam注解来指定请求参数的类型和名称。
另外,你还需要确保@RequestParam注解支持的请求类型和Content-Type与你发送的请求相匹配。根据你提供的参考内容,@RequestParam注解支持的请求类型包括GET和URL编码的参数,不支持POST请求。如果你发送的是POST请求,你可能需要考虑使用其他注解,如@RequestBody来解决这个问题。
总结一下,为了解决"Required request parameter 'ids' for method parameter type List is not present"错误,你需要:
1. 确保发送的请求中包含名为'ids'的参数。
2. 使用@RequestParam注解来指定请求参数的类型和名称。
3. 确保@RequestParam注解支持的请求类型和Content-Type与你发送的请求相匹配。
希望这些信息对你有帮助。如果还有其他问题,请随时提问。