SpringMVC注解@RequestParam全面解析


一、基本使用,獲取提交的參數

@RequestMapping("testRequestParam")    
   public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {    
    System.out.println(inputStr);  
      
    int inputInt = Integer.valueOf(request.getParameter("inputInt"));  
    System.out.println(inputInt);  
      
    // ......省略  
    return "index";  
   }     
<form action="/gadget/testRequestParam" method="post">    
     參數inputStr:<input type="text" name="inputStr">    
     參數intputInt:<input type="text" name="inputInt">    
</form> 

 

二、異常情況處理 

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”


免責聲明!

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



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