一次使用的時(shí)候發(fā)現(xiàn),這兩個(gè)注解都能用于接收參數(shù)熬苍,那么它倆的區(qū)別是啥呢?
@RequestParam
用來(lái)處理 Content-Type 為 application/x-www-form-urlencoded 編碼的內(nèi)容。
@RequestParam接收的參數(shù)是來(lái)自requestHeader中摄职,即請(qǐng)求頭。通常用于GET請(qǐng)求虑稼,像POST琳钉、DELETE等其它類型的請(qǐng)求也可以使用。
@RequestBody
該注解使用系統(tǒng)默認(rèn)配置HttpMessageConverter來(lái)解析蛛倦,然后將相應(yīng)的數(shù)據(jù)綁定到要返回的對(duì)象上
- 接收的參數(shù)是來(lái)自requestBody中歌懒,即請(qǐng)求體。
- 一般用于處理非 Content-Type: application/x-www-form-urlencoded編碼格式的數(shù)據(jù)溯壶,比如:application/json及皂、application/xml等類型的數(shù)據(jù),multipart/form-data, 即使使用@RequestBody不能處理這種格式的數(shù)據(jù)且改。
- 通常用于接收POST验烧、DELETE等類型的請(qǐng)求數(shù)據(jù),GET類型也可以適用又跛。
@ResponseBody
- 該注解用于將Controller的方法返回的對(duì)象碍拆,通過(guò)適當(dāng)?shù)霓D(zhuǎn)換器(HttpMessageConverter)轉(zhuǎn)換為指定格式后,寫(xiě)入到Response對(duì)象的body數(shù)據(jù)區(qū)。
- 返回的數(shù)據(jù)不是html標(biāo)簽的頁(yè)面感混,而是其他某種格式的數(shù)據(jù)時(shí)(如json端幼、xml等)使用。
TODO 后續(xù)繼續(xù)添加