1.以前一直以為在SpringMVC環境中,@RequestBody接收的是一個Json對象,一直在調試代碼都沒有成功,后來發現,其實 @RequestBody接收的是一個Json對象的字符串,而不是一個Json對象。然而在ajax請求往往傳的都是Json對象,后來發現用 JSON.stringify(data)的方式就能將對象變成字符串。同時ajax請求的時候也要指定dataType: "json",contentType:"application/json" 這樣就可以輕易的將一個對象或者List傳到Java端,使用@RequestBody即可綁定對象或者List.
2.
最近在接收一個要離職同事的工作,接手的項目是用SpringBoot搭建的,其中看到了這樣的寫法:
- @RequestMapping("doThis")
- public String doThis(HttpServletRequest request,
- @RequestParam("id") Long id, // 用戶ID
- @RequestParam("back_url") String back_url, // 回調地址
@RequestBody的使用需要加載MappingJackson2HttpMessageConverter,但是SpringBoot的官方文檔提到,這個是默認已經加載的了,而且json字符串和javabean也沒有書寫的錯誤
2、直接通過瀏覽器輸入url時,@RequestBody獲取不到json對象,需要用java編程或者基於ajax的方法請求,將Content-Type設置為application/json