关于Required String parameter ‘××ב is not present解决方法


 

报错信息如下:

[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进行获取参数;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM