1. 程式人生 > 程式設計 >SpringMVC使用@PathVariable接收引數過程解析

SpringMVC使用@PathVariable接收引數過程解析

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值

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。