SpringBoot解決Required String parameter xxx is not present問題
Required String parameter xxx is not present類型異常
異常報錯
學習Spring Boot的時候做一個簡單的表單提交demo發現一直報錯
Required String parameter 'username' is not present
解決方案
查閱資料很多人遇到的問題是給Controller的
@RequestParam註解補全
@RequestParam(value = “name”, required = false)
後就能解決,但是我這邊這個username參數是必須要的,而且添加瞭還是不能解決問題,最後認真檢查發現原因出在html頁面上的input中的name不小心寫錯瞭~~囧,修正後即可解決問題,
<input type="text" name="username"
Required String parameter‘XXX‘is not present的幾種情況
情況一
- 原因是由於頭文件類型不對,可以在MediaType中選擇合適的類型,例如GET和POST
情況二
- jquery提交delete時,不支持@RequestParam,隻支持@PathVariable形式
情況三
- 若api在調用的時候,如果存在重類型,但不重名;例如:/id與/name,兩者在類型上是一樣的
情況四
- 這裡提示Required String parameter 'XXX' is not present並不一定是XXX的錯,也有可能是後面的參數錯誤。總的來說就是頁面傳遞的參數和後臺接受參數名自不匹配。
情況五
- 傳遞的參數裡面包含特殊符號,比如前臺傳遞字符串不能包含逗號等。(待證明)
情況六
- 傳的參數是undefined;
情況七
- 換一種請求方式試試,比如現在用的是POST提交方式,改為GET/PUT等其他方式。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 關於@RequestParam的使用所遇到的404問題
- 基於params、@PathVariabl和@RequestParam的用法與區別說明
- 解決Springboot 2 的@RequestParam接收數組異常問題
- springboot RESTful以及參數註解的使用方式
- 淺談@RequestParam 參數是否必須傳的問題