關於springmvc如何與前臺交互json格式數據總結

首先簡單介紹一下springmvc與前臺交互的兩種形式:
圖

可以看出,前臺傳過來的方式有兩種,一種是傳json格式的數據過來,另一種就是在url的末尾傳普通的key/value串過來,針對這兩種方式,在Controller類中會有不同的解析,但是在Controller類中返回的json格式的數據都是一樣的。下面來具體分析一下SpringMVC是如何與前臺進行json數據的交互的。在講之前先認識兩個註解。

@RequestBody註解
@RequestBody註解用於讀取http請求的內容(字符串),通過SpringMVC提供的HttpMessageConverter接口將讀到的內容轉換爲json、xml等格式的數據並綁定到Controller類方法的參數上。
本例子應用:@RequestBody註解實現接收http請求的json數據,將json數據轉換爲java對象。如下: 在這裏插入圖片描述
在這裏插入圖片描述
@ResponseBody註解
@ResponseBody註解用於將Controller類的方法返回的對象,通過HttpMessageConverter接口轉換爲指定格式的數據如:json、xml等,通過Response響應給客戶端。
本例子應用:@ResponseBody註解實現將Controller類方法返回對象轉換爲json響應給客戶端,如下:
在這裏插入圖片描述
在這裏插入圖片描述
經過我如此細緻地講解,想必大家已認識到這兩個註解的意思了。好了,下面來具體分析一下SpringMVC是如何與前臺進行json數據的交互的。

環境的準備
加載json的jar包
SpringMVC默認用MappingJacksonHttpMessageConverter對json數據進行轉換,需要加入jackson的包,又因爲SpringMVC3和SpringMVC4針對json交互的jar包有區別,我用的是SpringMVC4,需要導入如下三個jar包: 在這裏插入圖片描述
讀者千萬不要忘了導入jQuery的類庫,因爲我是使用jQuery的ajax提交json串的,就像下圖這樣:
在這裏插入圖片描述
配置json轉換器
配置json轉換器有兩種方式,如果是配置了註解適配器org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter的話,需要在該適配器中配置json轉換器,如下:

text/plain;charset=UTF-8

但是如果使用<mvc:annotation-driven />註解驅動的話就不用以上的配置了,默認已經配好了(這裏可以看看這篇博客點此鏈接)。建議使用這種,比較方便。

json交互的測試
這裏,我使用jQuery的ajax提交json串,對輸出的json結果進行解析。前臺的程序如下:

json數據交互測試

那麼前臺itemList.jsp頁面的內容就應改造爲:
在這裏插入圖片描述
接着編輯ItemController類,並在該類中編寫如下方法:

// JSON數據交互
// @RequestBody:接收json數據並轉換成pojo對象
// @ResponseBody:響應json數據,把pojo對象轉換成json數據並響應
@RequestMapping("/json_test")
@ResponseBody
public Items jsonTest(@RequestBody Items items) {
return items;
}

由於前臺傳的是id、name和price三個屬性,所以在後臺就用Items類來接收了,這個類中也有這三個屬性。重點是@RequestBody註解,它是將前臺傳過來的json串轉換成items對象,然後再將該對象return回去,通過@ResponseBody註解將items對象轉成json格式返回給前臺。這樣前臺接收到了後就可以解析了。我們看一下測試的結果:

在這裏插入圖片描述
響應的結果,null表示空值而已,這裏就返回了原對象,也就只有id、name和price屬性。
在這裏插入圖片描述
這篇文章不是原創,當我想寫的時候找到這篇文章,我發現竟然沒有什麼我想加的東西,而且寫的很乾淨,
原創地址點此跳轉原創博主是個大才!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章