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

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

工具:IDEA 前端

咱們經過code來理解一下:ajax

1.以下圖時js代碼:由於是對用戶名校驗,因此傳入的數據只有用戶名;spring

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

 2.controller中的實現:mvc

   你們能夠發現咱們傳入的數據只有用戶名爲何RequestBody獲得的是一個POJO類的對象(固然這個Admin類不止這個屬性啦)呢?那就須要咱們對@RequestBody和@ResponseBody這兩個註解和SpringMVC中ajax的具體操做有一個瞭解啦。app

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

如圖:工具

能夠在外部庫中看到:spa

 關於Jackson的詳細用法你們能夠參考這篇文章http://www.javashuo.com/article/p-holmwhpv-ez.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層的方法啦~是否是以爲灰常強大灰常好用啊,嘻嘻小夥伴要是以爲有幫助的話歡迎頂一下哈~

相關文章
相關標籤/搜索