SpringMVC之ajax傳遞jason數據詳解以及@RequestBody和@ResonseBody注解


     最近在做ajax進行用戶名校驗時遇到了一些問題,在不斷debug的過程中也加深了我對springMVC之ajax傳遞jason數據的理解,希望對有需要的小伙伴一些幫助~

工具:IDEA 

我們通過code來理解一下:

1.如下圖時js代碼:因為是對用戶名校驗,所以傳入的數據只有用戶名;

PS:SpringMVC 通過ajax傳參到后台時:因為@RequestBody接收的是一個Json對象的字符串,而不是一個Json對象。然而在ajax請求往往傳的都是Json對象,用 JSON.stringify(data)的方式就能將對象變成字符串。同時ajax請求的時候也要指定dataType: "json",contentType:"application/json"。

 2.controller中的實現:

   大家可以發現我們傳入的數據只有用戶名為什么RequestBody得到的是一個POJO類的對象(當然這個Admin類不止這個屬性啦)呢?那就需要我們對@RequestBody和@ResponseBody這兩個注解和SpringMVC中ajax的具體操作有一個了解啦。

①.首先簡單介紹下Jackson:Jackson是一個簡單基於Java應用庫,Jackson可以輕松的將Java對象轉換成json對象和xml文檔,同樣也可以將json、xml轉換成Java對象;要引入強大的Jackson需要我們在pom.xml中導入相關的依賴(需要配置XML <mvc:annotation-driven />

如圖:

可以在外部庫中看到:

 關於Jackson的詳細用法大家可以參考這篇文章https://www.cnblogs.com/naaoveGIS/p/3893651.html

.@RequestBody:簡單的說就是 RequestBody用於獲取請求體的結構,使用了Jackson框架和@RequestBody注解后所以可以實現把請求體的內容封裝到Admin對象中,同時Spring MVC 會按請求參數名和 POJO 屬性名進行自動匹配,自動為該對象填充屬性值。

③.@ResponseBody:ResponseBody將返回的值直接寫到Http的響應體中,不需要替換為Spring的Model或者解析為視圖,相當於response.getWriter.write();當使用了Jackson框架和@ResponseBody注解之后,Jackson框架自動將對象解析成Json串返還數據給前端頁面。

大家想詳細了解@RequestBody和@ResponseBody的參考這篇文章:http://www.chinacion.cn/article/608.html

      因此我們傳入的Jason數據由於我們添加了Jackson依賴后會被轉換為Java對象,同時Spring MVC 會按請求參數名和 POJO 屬性名進行自動匹配,所以我們對POJO類的對象調用service層的方法啦~是不是覺得灰常強大灰常好用啊,嘻嘻小伙伴要是覺得有幫助的話歡迎頂一下哈~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM