淺談@RequestParam(required = true)的誤區(qū)
@RequestParam(required = true)的誤區(qū)
先說結論
required = true是在前端沒有傳參數(shù)的時候報錯,并不能防止參數(shù)為空。
考慮一下代碼:
@GetMapping("/userInfo") public void userInfo(@RequestParam(required = true) Integer id) { ... }
如果請求如下就會報400錯誤:
http://localhost:8088/userInfo
但構造以下請求,可以使id為空:
http://localhost:8088/userInfo?id=
參數(shù)總結
required=true
表示前端必須傳參數(shù)。required=false
表示前端不傳參數(shù)的時候,會將參數(shù)置為null。因此假如參數(shù)是int這種不能賦值為null的類型,就可能會報錯。
使用了defaultValue,required只能為false,前端不傳參數(shù)時會將參數(shù)置為defaultValue。
@RequestParam(required=false int id)值不傳報錯
@RequestParam(required=false int id)
:required=false說明了可以不傳值,如果是
// 注意現(xiàn)在是String類型的id @RequestParam(required=false Sting id)
這種不傳值就不會報錯
但如果是標題上寫的int類型這種
@RequestParam(required=false int id)
就會報錯,因為null不能賦給int。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java 實戰(zhàn)項目之在線點餐系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)在線點餐系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11Stream distinct根據(jù)list某個字段去重的解決方案
這篇文章主要介紹了Stream distinct根據(jù)list某個字段去重,stream的distinct去重方法,是根據(jù) Object.equals,和 Object.hashCode這兩個方法來判斷是否重復的,本文給大家介紹的非常詳細,需要的朋友可以參考下2023-05-05基于springboot和redis實現(xiàn)單點登錄
這篇文章主要為大家詳細介紹了基于springboot和redis實現(xiàn)單點登錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06