springmvc中@PathVariable和@RequestParam的区别
顧名思義, @PathVariable和@RequestParam,分別是從路徑里面去獲取變量,也就是把路徑當做變量,后者是從請求里面獲取參數。?
我的url;?
http://localhost:8080/Springmvc/user/page.do?pageSize=3&pageNow=2?
在controller中這么寫:?
@RequestMapping(value="/page.do/{pageSize}/{pageNow}")?
public String page(@PathVariable int pageSize,@PathVariable int pageNow){}?
?
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){}
轉載于:https://www.cnblogs.com/shanheyongmu/p/5944750.html
總結
以上是生活随笔為你收集整理的springmvc中@PathVariable和@RequestParam的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Notepad++如何编译、运行Java
- 下一篇: pycharm 修改新建文件时的头部模板