轉自:http://www.iteye.com/problems/101566;
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){}