@RequestBody的理解
时间:2021-08-25 18:22:04
收藏:0
阅读:15
What you are asking for is fundamentally wrong. POST requests sends data in a body payload, which is mapped via @RequestBody
. @RequestParam
is used to map data through the URL parameters such as /url?start=foo
. What you are trying to do is use @RequestParam
to do the job of @RequestBody
.
Alternative solutions for REST controllers
- Introduce a DTO class. It is the most preferred and clean method.
- If you really want to avoid creating a class, you can use
@RequestBody Map<String, String> payload
. Be sure to include‘Content-Type‘: ‘application/json‘
in your request header. - If you really want to use
@RequestParam
, use a GET request instead and send your data via URL parameters.
Alternative solutions for MVC controllers
- Introduce a DTO class and use it with annotation
@ModelAttribute
. - If you transform the form data into JSON, you can use
@RequestBody Map<String, String> payload
. To do this, please see this answer.
It is not possible to map form data encoded data directly to a Map<String, String>
.
原文:https://www.cnblogs.com/sidesky/p/15185929.html
评论(0)