SpringMVC教程之json交互使用詳解

json數(shù)據(jù)交互

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供石嘴山網(wǎng)站建設(shè)、石嘴山做網(wǎng)站、石嘴山網(wǎng)站設(shè)計、石嘴山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、石嘴山企業(yè)網(wǎng)站模板建站服務(wù),10年石嘴山做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

1.1 @RequestBody

作用:@RequestBody注解用于讀取http請求的內(nèi)容(字符串),通過springmvc提供的HttpMessageConverter接口將讀到的內(nèi)容轉(zhuǎn)換為json、xml等格式的數(shù)據(jù)并綁定到controller方法的參數(shù)上。

本例子應(yīng)用:@RequestBody注解實現(xiàn)接收http請求的json數(shù)據(jù),將json數(shù)據(jù)轉(zhuǎn)換為Java對象

1.2 @ResponseBody

作用:該注解用于將Controller的方法返回的對象,通過HttpMessageConverter接口轉(zhuǎn)換為指定格式的數(shù)據(jù)如:json,xml等,通過Response響應(yīng)給客戶端

本例子應(yīng)用:@ResponseBody注解實現(xiàn)將controller方法返回對象轉(zhuǎn)換為json響應(yīng)給客戶端 

1.3 請求json,響應(yīng)json實現(xiàn):

1.3.1 環(huán)境準(zhǔn)備

Springmvc默認(rèn)用MappingJacksonHttpMessageConverter對json數(shù)據(jù)進(jìn)行轉(zhuǎn)換,需要加入jackson的包,如下:

1.3.2 配置json轉(zhuǎn)換器

在注解適配器中加入messageConverters

<!--注解適配器 --> 
 
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
 
<property name="messageConverters"> 
 
<list> 
 
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> 
 
</list> 
 
</property> 
 
</bean>

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

1.3.3 controller編寫

// 商品修改提交json信息,響應(yīng)json信息 
 
@RequestMapping("/editItemSubmit_RequestJson") 
 
public @ResponseBody Items editItemSubmit_RequestJson(@RequestBody Items items) throws Exception { 
 
System.out.println(items); 
 
//itemService.saveItem(items); 
 
return items; 
 
 
 
} 

1.3.4 頁面js方法編寫:

引入 js:

<script type="text/JavaScript"
src="${pageContext.request.contextPath }/js/jQuery-1.4.4.min.js"></script>
//請求json響應(yīng)json 
 
function request_json(){ 
 
$.ajax({ 
 
type:"post", 
 
url:"${pageContext.request.contextPath }/item/editItemSubmit_RequestJson.action", 
 
contentType:"application/json;charset=utf-8", 
 
data:'{"name":"測試商品","price":99.9}', 
 
success:function(data){ 
 
alert(data); 
 
} 
 
}); 
 
} 

1.4 Form提交,響應(yīng)json實現(xiàn):

采用form提交是最常用的作法,通常有post和get兩種方法,響應(yīng)json數(shù)據(jù)是為了方便客戶端處理,實現(xiàn)如下:

1.4.1 環(huán)境準(zhǔn)備

同第一個例子

1.4.2 controller編寫

// 商品修改提交,提交普通form表單數(shù)據(jù),響應(yīng)json 
 
@RequestMapping("/editItemSubmit_ResponseJson") 
 
public @ResponseBody Items editItemSubmit_ResponseJson(Items items) throws Exception { 
 
 
 
System.out.println(items); 
 
 
 
//itemService.saveItem(items); 
 
return items; 
 
} 

1.4.3 頁面js方法編寫:

function formsubmit(){ 
 
var user = " name=測試商品&price=99.9"; 
 
alert(user); 
 
 $.ajax( 
 
{ 
 
type:'post',//這里改為get也可以正常執(zhí)行 
 
url:'${pageContext.request.contextPath}/item/ editItemSubmit_RequestJson.action', 
 
//ContentType沒指定將默認(rèn)為:application/x-www-form-urlencoded 
 
data:user, 
 
success:function(data){ 
 
alert(data.name); 
 
} 
 
} 
 
) 
 
} 

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

1.4.4 jquery的form插件插件

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

引用js:

<script type="text/javascript"
src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath }/js/jquery.form.min.js"></script>

js方法如下:

function response_json() { 
 
//form對象 
 
var formObj = $("#itemForm"); 
 
//執(zhí)行ajax提交 
 
formObj.ajaxSubmit({ 
 
dataType : "json",//設(shè)置預(yù)期服務(wù)端返回json 
 
success : function(responseText) { 
 
alert(responseText); 
 
} 
 
}); 
 
} 

1.4.5 小結(jié)

實際開發(fā)中常用第二種方法,請求key/value數(shù)據(jù),響應(yīng)json結(jié)果,方便客戶端對結(jié)果進(jìn)行解析。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

當(dāng)前標(biāo)題:SpringMVC教程之json交互使用詳解
標(biāo)題鏈接:http://bm7419.com/article36/psdcpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號軟件開發(fā)、網(wǎng)頁設(shè)計公司網(wǎng)站導(dǎo)航、網(wǎng)站收錄靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)