獲得客戶(hù)端傳遞參數(shù)的注解,我們之前學(xué)寫(xiě)了@PathVariable,用于獲取URITemplate中的參數(shù)。今天小博老師給大家介紹另一個(gè)獲取參數(shù)的注解方法@RequestParam驶鹉。
通過(guò)request.getParameter() 獲取的String參數(shù),在可以直接轉(zhuǎn)換為簡(jiǎn)單類(lèi)型(String休偶,Integer梁厉,Long等)的情況下,都可以使用@RequestParam進(jìn)行注解綁定踏兜。我們知道用request.getParameter()獲取參數(shù)词顾,即可以處理Get請(qǐng)求中的queryString的值,也可以處理post請(qǐng)求中的body值碱妆。所以@RequestParam即可以處理Content-Type是 application/x-www-form-urlencoded編碼的內(nèi)容肉盹,也可以處理URL中的queryString攜帶的參數(shù)。
如疹尾,RequestMapping定義的方法:
public String queryUser(@RequestParamStringname)
客戶(hù)端請(qǐng)求的URL:/**/?name=boweifeng上忍,請(qǐng)求中包含name參數(shù)會(huì)自動(dòng)傳入。
@RequestParam注解的主要參數(shù):
value:參數(shù)名字纳本,即請(qǐng)求的參數(shù)名字窍蓝。請(qǐng)求中的參數(shù)名與方法定義參數(shù)名一致時(shí),可以省略繁成。
required:是否必須吓笙。默認(rèn)是true,表示請(qǐng)求中一定要有相應(yīng)的參數(shù)巾腕,否則將報(bào)404錯(cuò)誤碼面睛。
注意事項(xiàng):
1.如果有多個(gè)同名參數(shù)時(shí)絮蒿,應(yīng)使用數(shù)組或者列表接收參數(shù)。
如請(qǐng)求路徑為:
url?name=51testing&name=51code
對(duì)應(yīng)的方法應(yīng)該寫(xiě)成:
public StringqueryUser(@RequestParam(value="name") String [] ?userNames)
或者
public StringqueryUser(@RequestParam(value="name") List list)