Spring中的@RequestParam注解


1、可以對傳入參數指定參數名

@RequestParam String inputStr  
// 下面的對傳入參數指定為aa,如果前端不傳aa參數名,會報錯  
@RequestParam(value="aa") String inputStr  
**錯誤信息:** 
**HTTP Status 400 - Required String parameter 'aa' is not present** 

2、可以通過required=false或者true來要求@RequestParam配置的前端參數是否一定要傳

// required=false表示不傳的話,會給參數賦值為null,required=true就是必須要有 @RequestMapping("testRequestParam") public String filesUpload( @RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)

3、如果用@RequestMapping注解的參數是int基本類型,但是required=false,這時如果不傳參數值會報錯,因為不傳值,會賦值為null給int,這個不可以

@RequestMapping("testRequestParam")    
public String filesUpload(
    @RequestParam(value="aa", required=true) String inputStr, 
    @RequestParam(value="inputInt", required=false) int inputInt,
    HttpServletRequest request) {    
// ......省略  
return "index";  
}  

解決方法:
“Consider declaring it as object wrapper for the corresponding primitive type.”建議使用包裝類型代替基本類型,如使用“Integer”代替“int”

@RequestParam 有三個屬性:
(1)value:請求參數名(必須配置)
(2)required:是否必需,默認為 true,即 請求中必須包含該參數,如果沒有包含,將會拋出異常(可選配置)
(3)defaultValue:默認值,如果設置了該值,required 將自動設為 false,無論你是否配置了required,配置了什么值,都是 false的效果(可選配置)

具體配置方法:
(1)配置一個屬性

@RequestParam("") 或 @RequestParam(value="")

(2)配置多個屬性

@RequestParam(value="", required=true, defaultValue="")

 

 

參考文章:

https://www.jianshu.com/p/06667e4580a8


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM