报错:Required String parameter 'XXX' is not present错误的几种可能性
生活随笔
收集整理的這篇文章主要介紹了
报错:Required String parameter 'XXX' is not present错误的几种可能性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景了解:
同事對代碼做了改動,他在后臺把原本接收的參數“username”改成了"id",沒有把修改的事情通知我。拿到代碼運行后發現前臺網頁的內容顯示不完整了。下邊是前后對比圖
報錯信息:
Resolved exception caused by Handler execution: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'id' is not present中文釋義:所需的字符串參數“id”不存在
錯誤分析:
根據控制臺報錯的內容來看,沒有具體指向哪個文件哪個類或者方法,這樣的報錯很煩,聯想到我項目前后運行的效果不一樣,猜測可能是和我左側菜單欄那有關系。去看了一下后臺接口接收的參數是“id”,頁面上傳遞的參數是“username”,問題應該是頁面傳遞和后臺接收的參數不一致導致
解決辦法:
根據業務需求接收參數這里保持不變,接收id
public List<Resource> getInfo(@RequestParam("id")String id) {logger.debug("data{}",resourceService.get(id)); return resourceService.get(id);}頁面這里傳遞的參數“username”改為“id”
created() {var user = sessionStorage.getItem('user');user = JSON.parse(user);let _para = {//username: user.username,//user對象是登錄時存在session里的,直接從session里取出就行id :user.id};this.$fetch('http://' + http.host_port + '/Resource', _para).then(res => {if(res) {}});}刷新頁面,發現問題解決了
?
在網上還看到幾種情況也會導致這個問題:
(1)頭文件類型不對,可以在MediaType中選擇合適的類型,例如GET和POST
(2)jquery提交delete時,不支持@RequestParam,只支持@PathVariable形式
(3)api在調用的時候,如果存在重類型,但不重名;例如:/id與/name,兩者在類型上是一樣的
(4)傳遞的參數里面包含特殊符號,比如前臺傳遞字符串不能包含逗號等
(5)傳的參數是undefined
以上幾種情況是網友們遇到的,后期可以證實一下
總結
以上是生活随笔為你收集整理的报错:Required String parameter 'XXX' is not present错误的几种可能性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国庆节放假调休安排来了!共7天,中疾控:
- 下一篇: C4D 入门笔记(一)