您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么用Springmvc的post請求json格式參數的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么用Springmvc的post請求json格式參數文章都會有所收獲,下面我們一起來看看吧。
分析:
這里我們只做get請求和post 請求 分析。
1) springmvc 的配置方法不說了,保證包含<mvc:annotation-driven/> 即可。
2) 必備的jar 必不可少。springmvc 內置的json 處理包是 jackson,完整引入方式。引入包有jackson-databind,jackson-core,jackson-annotations
<dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>${jackson.version}</version> </dependency>
3) 采用注解方式來實現Controller
package com.bkc.bpmp.modules.external.controller; import java.io.IOException; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.bkc.bpmp.modules.external.pojo.ExternalSingleResult; @Controller @RequestMapping("/external") public class Test { @RequestMapping(value = "/test1") @ResponseBody public Object test1(@RequestBody String pageData) throws IOException { System.out.println(pageData); return pageData; } @RequestMapping(value = "/test2") @ResponseBody public Object test2(@RequestParam String pageData) throws IOException { System.out.println(pageData); return pageData; } }
4)對應test2,采用的是 @RequestParam 方式獲取的參數
其參數格式就是一般 a=a&b=b 模式
而對于test1,采用的是 @RequestBody 方式獲取的參數
其參數格式就是 json格式的字符串,{"a":"valueA","b":"valueB"}
5)在我使用 HTTP請求工具測試 test2 的時候,一直報 415
HTTP 415 錯誤 – 不支持的媒體類型(Unsupported media type)
因為我設置的請求格式為application/json ,應該為 application/json;charset=UTF-8
6)使用ajax 請求來測試,測試方法如下
在TestAjax()方法中,data 是一個json 數組,用這種方式去發送請求的時候,其實本質上就是參數格式為 a=a&b=b 模式。TestAjax2() 方法,傳遞的則是 json 字符串
function TestAjax() { var datas = { "equObjCode" : "EO_10HLB21AN001.QY-GL01.JZ-01.TY" }; var url = "/external/test2"; var obj = $("#result"); var data = $.parseJSON(datas); $.ajax({ type : "get", async : false, url : url, data : data, //cache : false, //默認值true dataType : "jsonp", jsonp : "callback",//傳遞給請求處理程序或頁面的,用以獲得jsonp回調函數名的參數名(默認為:callback) jsonpCallback : "jsonpCallback", //自定義的jsonp回調函數名稱,默認為jQuery自動生成的隨機函數名 //如果這里自定了jsonp的回調函數,則success函數則不起作用;否則success將起作用 success : function(data) { obj.html(JSON.stringify(data)); //obj.parent().css("background","#ddd"); }, error : function(XMLHttpRequest, textStatus) { obj.html(XMLHttpRequest.status + "," + XMLHttpRequest.readyState + ",error=" + textStatus); } }); } function TestAjax2() { var datas = { "equObjCode" : "EO_10HLB21AN001.QY-GL01.JZ-01.TY" }; var url = "/external/test1"; var obj = $("#result"); $.ajax({ type : "post", url : url, data : data, dataType : "json", contentType : 'application/json;charset=UTF-8', success : function(data) { obj.html(JSON.stringify(data)); }, error : function(XMLHttpRequest, textStatus) { obj.html(XMLHttpRequest.status + "," + XMLHttpRequest.readyState + ",error=" + textStatus); } }); }
7)
jsonp 只支持get 請求,不支持post 請求。
post模式下,使用@RequestBody 綁定請求對象,Spring會幫你進行協議轉換,將Json、Xml協議轉換成你需要的對象。
關于“怎么用Springmvc的post請求json格式參數”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么用Springmvc的post請求json格式參數”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。