SpringMVC使用@PathVariable接收引數過程解析
阿新 • • 發佈:2020-10-22
PathVariable 對映 URL 繫結的佔位符
帶佔位符的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標挺進發展過程中具有里程碑的意義
通過 @PathVariable 可以將 URL 中佔位符引數繫結到控制器處理方法的入參中:URL 中的 {xxx} 佔位符可以通過@PathVariable(“xxx“) 繫結到操作方法的入參中。
使用MVC時,總是出現一些問題,當然都是使用造成的。
今天遇到一個問題,使用@PathVariable接收路徑傳遞來的引數,可是訪問時總是給500錯誤。
網上查了一下,有人說是不能帶點符號,最後確定不是這個問題。
最後看到一個人說,使用@PathVariable時,引數接收要使用基本型別,比如我的程式碼:
@RequestMapping("/{reqKey}/req.do") @ResponseBody public ResponseEntity<String> ordersBack( @PathVariable String reqKey,@RequestParam(value="intVal") Integer intVal,@RequestParam(value="strVal") String strVal) throws Exception{ return new ResponseEntity("ok",HttpStatus.OK); }
這裡面的intVal 我寫成了int,現在改為Integer就可以了。
這裡你給 required=false 是不行的,因為如果你不需要,這裡Spring會給一個Null預設值,而你的型別如果是int,那肯定會出錯。
你也可以使用defaultValue,這樣Spring就不會去注入Null值,一樣也不會出錯。
綜上,使用@PathVariable時注意兩點:
1:引數接收型別使用基本型別
2:不用基本型別時,給defaultValue值
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。