糯米文學吧

位置:首頁 > 計算機 > java語言

SpringMVC教程之json交互使用

java語言9.92K

Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。本文是本站小編搜索整理的關於SpringMVC教程之json交互使用詳解,供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

SpringMVC教程之json交互使用

  json數據交互

  1.1 @RequestBody

作用:@RequestBody註解用於讀取http請求的內容(字符串),通過springmvc提供的HttpMessageConverter接口將讀到的內容轉換為json、xml等格式的`數據並綁定到controller方法的參數上。

本例子應用:@RequestBody註解實現接收http請求的json數據,將json數據轉換為Java對象

  1.2 @ResponseBody

作用:該註解用於將Controller的方法返回的對象,通過HttpMessageConverter接口轉換為指定格式的數據如:json,xml等,通過Response響應給客户端

本例子應用:@ResponseBody註解實現將controller方法返回對象轉換為json響應給客户端

  1.3 請求json,響應json實現:

  1.3.1 環境準備

Springmvc默認用MappingJacksonHttpMessageConverter對json數據進行轉換,需要加入jackson的包,如下:

  1.3.2 配置json轉換器

在註解適配器中加入messageConverters

<!--註解適配器 -->

<bean class="estMappingHandlerAdapter">

<property name="messageConverters">

<list>

<bean class="ingJacksonHttpMessageConverter"></bean>

</list>

</property>

</bean>

注意:如果使用<mvc:annotation-driven /> 則不用定義上邊的內容。

  1.3.3 controller編寫

// 商品修改提交json信息,響應json信息

@RequestMapping("/editItemSubmit_RequestJson")

public @ResponseBody Items editItemSubmit_RequestJson(@RequestBody Items items) throws Exception {

tln(items);

//Item(items);

return items;

}

  1.3.4 頁面js方法編寫:

引入 js:

<script type="text/JavaScript"

src="${extPath }/js/"></script>

//請求json響應json

function request_json(){

$({

type:"post",

url:"${extPath }/item/editItemSubmit_on",

contentType:"application/json;charset=utf-8",

data:'{"name":"測試商品","price":99.9}',

success:function(data){

alert(data);

}

});

}

  1.4 Form提交,響應json實現:

採用form提交是最常用的作法,通常有post和get兩種方法,響應json數據是為了方便客户端處理,實現如下:

  1.4.1 環境準備

同第一個例子

  1.4.2 controller編寫

// 商品修改提交,提交普通form表單數據,響應json

@RequestMapping("/editItemSubmit_ResponseJson")

public @ResponseBody Items editItemSubmit_ResponseJson(Items items) throws Exception {

tln(items);

//Item(items);

return items;

}

  1.4.3 頁面js方法編寫:

function formsubmit(){

var user = " name=測試商品&price=99.9";

alert(user);

$(

{

type:'post',//這裏改為get也可以正常執行

url:'${extPath}/item/ editItemSubmit_on',

//ContentType沒指定將默認為:application/x-www-form-urlencoded

data:user,

success:function(data){

alert();

}

}

)

}

從上邊的js代碼看出,已去掉ContentType的定義,ContentType默認為:application/x-www-form-urlencoded格式。

  1.4.4 jquery的form插件插件

針對上邊第二種方法,可以使用jquery的form插件提交form表單,實現ajax提交form表單,如下:

引用js:

<script type="text/javascript"

src="${extPath }/js/"></script>

<script type="text/javascript"

src="${extPath }/js/"></script>

js方法如下:

function response_json() {

//form對象

var formObj = $("#itemForm");

//執行ajax提交

Submit({

dataType : "json",//設置預期服務端返回json

success : function(responseText) {

alert(responseText);

}

});

}

  1.4.5 小結

實際開發中常用第二種方法,請求key/value數據,響應json結果,方便客户端對結果進行解析。

標籤:springmvc JSON 交互