Spring MVC PathVariable

我們已經(jīng)學(xué)習(xí)了如何定義一個(gè)Controller方法,如何為該方法設(shè)置對(duì)應(yīng)的請(qǐng)求URI。假設(shè)一個(gè)URL請(qǐng)求映射到了定義的Controller方法,該方法如何處理呢?如何獲取到參數(shù)呢?今天小博老師向大家介紹一個(gè)獲取URITemplate參數(shù)的注解@PathVariable。

我們先看一個(gè)例子:

@RequestMapping(value="/boweifeng/{classId}", method=RequestMethod.GET)

public String findClass(@PathVariable int classId, Model model){

}

URI模板”/boweifeng/{classId}”指定了默認(rèn)變量名為classId。當(dāng)方法被請(qǐng)求時(shí),參數(shù)classId的值會(huì)被賦值為請(qǐng)求的URI中對(duì)應(yīng)部分的值。比如請(qǐng)求為/boweifeng/12,那么fincClass方法中classId參數(shù)會(huì)被賦值為12。參數(shù)名和URI模板變量名一致能自動(dòng)賦值。如果兩者不一致,則需要在@Pathvariable注解中加入對(duì)應(yīng)的參數(shù),如下面的例子:

@RequestMapping(value="/boweifeng/{classId}", method=RequestMethod.GET)

public String findClass(@PathVariable(“classId”) int clazzTag, Model model){

}

如果URI定義中有多個(gè)變量,可以在方法中定義對(duì)應(yīng)數(shù)量的@PathVariable注解獲取相應(yīng)的參數(shù)值。

@PathVariable和方法中的參數(shù)可以是任何簡單數(shù)據(jù)類型,例如:int,long,Date,等等。spring會(huì)自動(dòng)轉(zhuǎn)換,如果不匹配則拋出TypeMismatchException。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring的模型-視圖-控制器(MVC)框架是圍繞一個(gè)DispatcherServlet來設(shè)計(jì)的,這個(gè)Servl...
    alexpdh閱讀 2,746評(píng)論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,656評(píng)論 19 139
  • 1、Spring MVC請(qǐng)求流程 (1)初始化:(對(duì)DispatcherServlet和ContextLoderL...
    拾壹北閱讀 2,019評(píng)論 0 12
  • 2016年8月4日,6位盜火者普羅米修斯積聚了飛天能量,點(diǎn)燃了艾特說的圣火,啟動(dòng)了艾特說「@Talk」創(chuàng)造力接力演...
    艾特說接力閱讀 593評(píng)論 0 0
  • 這段時(shí)間各種負(fù)面新聞充斥著視聽,本來還在慶幸沒有國外的槍擊事件,卻未料想現(xiàn)實(shí)以一種惡心至腐的方式,把我本不是特別柔...
    48歲的張昆閱讀 3,212評(píng)論 0 3

友情鏈接更多精彩內(nèi)容