springmvc中@PathVariable和@RequestParam的區別

http://localhost:8080/Springmvc/user/page.do?pageSize=3&pageNow=2 

你能夠把這地址分開理解,其中問號前半部分:http://localhost:8080/Springmvc/user/page.do 這個就是路徑,是你的請求url,而若是這個路徑上有數據匹配,用的就是@PathVariable  如 
@RequestMapping(value="/page{pageNo}.do") 
public String page(@PathVariable int pageNo){} 
【注意:看下這地方的@RequestMapping的地址,對照我上面說的路徑】 

而問號的後面部分就是請求參數部分,是要向請求路徑提交的參數信息,用的就是@RequestParam ,對於這種參數,若是你要用的話,代碼應該以下: 
@RequestMapping(value="/page.do") 
public String page(@RequestParam int pageSize,@RequestParam  int pageNow){} 

【注意:這個代碼的RequestMapping地址只須要/page.do就行】 


其實你只要把什麼叫請求路徑,什麼叫請求參數分清楚,也就能理解@PathVariable和@RequestParam 

我再舉個例子,就拿你這個問題在iteye上的地址爲例,http://www.iteye.com/problems/101566 這個若是對應sprimgmvc裏面,想獲取問題編號101566,由於這個地址直接就是請求路徑,是一個url,因此代碼中用的應該是@PathVariable,以下: 
@RequestMapping(value="/problems/{problemId}") 
public String showProblem(@PathVariable int problemId){}mvc

相關文章
相關標籤/搜索