最近有點疑惑的是,在公司用@RequestBody 可以解析前端發送的json串,但是自己在做項目的時候老是會接受不到,報415錯誤,於是尋思了一下,看了看請求體有何不同,發現確實不同,

這個是表單提交,格式為這個樣子的,所以前台不能加@RequestBody ,否則會接收不到參數,而公司前台進行傳遞參數的時候是這樣傳的

所以必須加此注解告知需要進行解析,並賦值到接收參數的對象里面,進行后續的操作,還有就是@RequestBody是接收請求體的參數,而@RequestParam接收到的是請求頭中的信息,換句話說,
@RequestParam就是只能從請求的地址中取出參數,也就是只能從username=admin&password=admin這種字符串中解析出參數,這樣是不能提取出請求體中的參數的。(不明白的進一步解釋:spring的RequestParam注解接收的參數是來自於requestHeader中,即請求頭,也就是在url中,格式為xxx?username=123&password=456,而RequestBody注解接收的參數則是來自於requestBody中,即請求體中。)
那這樣接收參數的話,肯定是和請求的方式也是有一定關系的,例如:
在get請求下,后台接收參數的注解為RequestBody時會報錯;在post請求下,后台接收參數的注解為RequestParam時也會報錯。這下徹底明白了!!!!
