报错信息如下:
[org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter ‘××××’ is not present]
对于前端传过来的参数,springboot通常通过如下三个注解接受参数:
@PathVariable
@RequestParam
@RequestBody
下面是对三个注解的简单理解介绍:
注解 支持的类型 支持的请求类型 支持的Content-Type 请求示例 @PathVariable url GET 所有 /test/{id} @RequestParam url GET 所有 /test?id=1 Body POST/PUT/DELETE/PATCH form-data或x-www.form-urlencoded id:1 @RequestBody Body POST/PUT/DELETE/PATCH json {"id":1} 将接口改成以@RequestBody注解方式接受json请求数据,而后将接收到的json数据转化为json对象,可以使用json对象的get()方法取得参数值,代码如下: @PostMapping("/account") public Object insertAccount(@RequestBody JSONObject jsonParam) { String userName=jsonParam.get("userName").toString() ...
}
需要注意的是,如果请求类型为delete并且参数类型不是json的话,不能使用通过表单类型提交,参数需要跟到请求url后面,并且后台使用@PathVariable进行获取参数;