日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

报错:Required String parameter 'XXX' is not present错误的几种可能性

發布時間:2023/12/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 报错: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错误的几种可能性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。