@PathVariable:處理request uri 的注解
@RequestMapping("/pets/{petId}")???
?public?void?findPet(@PathVariable?String petId)
@RequestParam、@RequestBody:處理request body部分的注解
@RequestParam(value妹孙,required)
1)接收f(shuō)orm表單參數(shù)秋柄, value中的參數(shù)名稱要跟name中參數(shù)名稱一致
????@RequestParam(value="username") String userName
2)用來(lái)處理Content-Type: 為 application/x-www-form-urlencoded編碼的內(nèi)容( Http協(xié)議中,如果不指定Content-Type蠢正,則默認(rèn)傳遞的參數(shù)就是application/x-www-form-urlencoded類型 )
@RequestBody 用于Post請(qǐng)求骇笔,不能用于Get請(qǐng)求
1)? 常用來(lái)處理非Content-Type: application/x-www-form-urlencoded編碼格式的數(shù)據(jù)
2) 用于接收json串 ?如ajax請(qǐng)求的data參數(shù) ? ?可在直接接收轉(zhuǎn)換到Pojo
@RequestBody Map<String, Object> map
@ModelAttribute:將參數(shù)綁定到Model對(duì)象
<form action="/user/modelAttributeTest" method="post">
用戶id:<input type="text" name="userId"><br>
用戶名:<input type="text" name="userName"><br>
用戶密碼:<input type="password" name="userPwd"><br>
<input type="submit" value="提交"><br>
</form>
name的屬性值要跟User的屬性相對(duì)應(yīng)
Content-Type格式為以下:
1)application/x-www-form-urlencoded,這種情況的數(shù)據(jù)@RequestParam、@ModelAttribute可以處理笨触,@RequestBody也可以處理
2)multipart/form-data懦傍,@RequestBody不能處理這種格式的數(shù)據(jù)(form表單里面有文件上傳時(shí),必須要指定enctype屬性值為multipart/form-data)
3)application/json芦劣、application/xml等格式的數(shù)據(jù)粗俱,必須使用@RequestBody來(lái)處理