@RequestParam、@RequestBody、@ModelAttribute、@PathVariable

1. @RequestParam

value:指定參數(shù)名,可以省略;

required:是否必須,true or false;

defaultValue:默認(rèn)值

方法:public? void AA(@RequestParam Map<String Object> map){ };

參數(shù)結(jié)構(gòu):jsonData=json字符串

結(jié)果:map = "jsonData"->"json字符串"(json字符串不會(huì)被解析,直接當(dāng)做字符串處理)

2. @RequestBody(前端需要設(shè)置contentType="application/json;charset=utf-8")

通過(guò)@requestBody可以將請(qǐng)求體中的JSON字符串綁定到相應(yīng)的bean上,也可以將其分別綁定到對(duì)應(yīng)的字符串上。

處理HttpEntity傳遞過(guò)來(lái)的數(shù)據(jù),一般用來(lái)處理非Content-Type: application/x-www-form-urlencoded編碼格式的數(shù)據(jù)。

GET請(qǐng)求中,因?yàn)闆](méi)有HttpEntity,所以@RequestBody并不適用。

POST請(qǐng)求中,通過(guò)HttpEntity傳遞的參數(shù),必須要在請(qǐng)求頭中聲明數(shù)據(jù)的類(lèi)型Content-Type,SpringMVC通過(guò)使用HandlerAdapter 配置的HttpMessageConverters來(lái)解析HttpEntity中的數(shù)據(jù),然后綁定到相應(yīng)的bean上。

@RequestBody用于post請(qǐng)求,不能用于get請(qǐng)求

方法:public? void AA(@RequestParam Map<String Object> map){ };

參數(shù)結(jié)構(gòu):json字符串

結(jié)果:map = json字符串會(huì)被處理成key-value的形式,接收類(lèi)型如果是bean,json也會(huì)直接被封裝成bean

3. @ModelAttribute

將參數(shù)綁定到Model對(duì)象

當(dāng)前臺(tái)界面使用GET或POST方式提交數(shù)據(jù)時(shí),數(shù)據(jù)編碼格式由請(qǐng)求頭的ContentType指定。分為以下幾種情況:

1. application/x-www-form-urlencoded,這種情況的數(shù)據(jù)@RequestParam、@ModelAttribute可以處理,@RequestBody也可以處理。

2. multipart/form-data,@RequestBody不能處理這種格式的數(shù)據(jù)。(form表單里面有文件上傳時(shí),必須要指定enctype屬性值為multipart/form-data,意思是以二進(jìn)制流的形式傳輸文件。)

3. application/json、application/xml等格式的數(shù)據(jù),必須使用@RequestBody來(lái)處理。

4. @PathVariable

映射 URL 綁定的占位符

@RequestMapping("test/{ }")

public ApiResult test1(@PathVariable("userId") String userId){

return ApiResult.SUCCESS(JsonUtil.toJsonString(userId));

}

最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 16. Web MVC 框架 16.1 Spring Web MVC 框架介紹 Spring Web 模型-視圖-...
    此魚(yú)不得水閱讀 1,159評(píng)論 0 4
  • Spring的模型-視圖-控制器(MVC)框架是圍繞一個(gè)DispatcherServlet來(lái)設(shè)計(jì)的,這個(gè)Servl...
    alexpdh閱讀 2,746評(píng)論 0 3
  • 翻譯自Spring官方文檔 4.1.2版本 相關(guān)文章: Spring參考手冊(cè) 1 Spring Framework...
    liycode閱讀 777評(píng)論 0 2
  • Jurong Regional Library是周六(24th Sept.)早上去的,本來(lái)以為是一間小小的圖書(shū)館,...
    BabyAnt閱讀 777評(píng)論 1 0
  • 那一夜,天落雨了,雨點(diǎn)淅淅瀝瀝的打在玻璃窗上,我靜靜的躺在床上,看著那只你我都熟悉的娃娃,我盯著它整整一夜,想了又...
    青年旅行閱讀 247評(píng)論 0 1

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