javascript
SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别
SpringMVC注解@RequestParam全面解析
在此之前,寫項目一直用的是@RequestParam(value=“aa” required=false)這個注解,但是并不知道它的意思。現在懂了,特來記錄下。
1、可以對傳入參數指定參數名
1 @RequestParam String inputStr 2 // 下面的對傳入參數指定為aa,如果前端不傳aa參數名,會報錯 3 @RequestParam(value="aa") String inputStr2、可以通過required=false或者true來要求@RequestParam配置的前端參數是否一定要傳
1 // required=false表示不傳的話,會給參數賦值為null,required=true就是必須要有 2 @RequestMapping("testRequestParam") 3 public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)3、如果@requestParam注解的參數是int類型,并且required=false,此時如果不傳參數的話,會報錯。原因是,required=false時,不傳參數的話,會給參數賦值null,這樣就會把null賦值給了int,因此會報錯。
1 // required=false表示不傳的話,會給參數賦值為null,required=true就是必須要有 2 @RequestMapping("testRequestParam") 3 public String filesUpload(@RequestParam(value="aa", required=false) int inputStr, HttpServletRequest request) 4 若是前端頁面不傳參的話,此處就會報錯。當然可以用Integer代替int注解@RequestParam如何使用加與不加的區別\
springmvc為我們提供了多個注解來處理入參和返回值,@RequestParam就是用來處理入參的,但可能你會奇怪,平時不使用這個參數也可以獲取到參數呀,確實加與不加都可以獲取參數,但還是有區別的,下面就來看下如何使用和區分
方法/步驟
1
為演示效果,首先需要創建一個測試控制類,然后創建一個測試方法,如圖所示,方法里添加一個參數,此時方法參數沒有添加注解
2
通過idea工具啟動web項目,然后通過瀏覽器訪問測試效果,不帶參數則獲取的參數為null,但頁面可以正常顯示,請求可以正常的執行,帶上參數之后,參數可以正常的獲取并打印出來了
3
下面來對比下添加注解的效果,但只是添加@RequestParam,沒有帶任何的注解設置參數。
4
再次通過瀏覽器訪問查看效果,此時帶上userName參數頁面可以正常顯示并打印出結果值,但如圖所示,不帶參數的時候,頁面報錯,返回400,并提示userName不存在
5
當然這樣的限制是可以選擇的,@RequestParam里添加required=false來關閉必須參數的限制,這樣就和不帶第一種不帶注解的效果一樣了
6
@RequestParam還可以在參數為空的情況下,為我們設置一個參數的默認值,如圖所示,可以看出來,沒有參數的情況下,獲取到的就是默認值
7
默認參數的key名稱是方法里的參數名稱,但通過@RequestParam可以自定義另外一個,因為在某些條件下,方法名稱固定下來不可以修改了,但請求的參數又需要通過另外一個參數key名稱來傳遞,這樣就可以通過這樣的方式來實現
END
注意事項
- 雖然加與不加都可以獲取到參數,但特定的需求或限制的時候,就需要結合@RequestParam注解來使用了。
總結
以上是生活随笔為你收集整理的SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 喜报!第四范式助推百胜中国斩获2020
- 下一篇: Spring框架中的单例Bean是线程安