這篇文章將為大家詳細講解有關(guān)@ResponseBody于@RequestBody注解在springMvc中的區(qū)別有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、山亭網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、html5、購物商城網(wǎng)站建設、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為山亭等各大城市提供網(wǎng)站開發(fā)制作服務。
springmvc對json的前后臺傳輸做了很好封裝,避免了重復編碼的過程,下面來看看常用的@ResponseBody和@RequestBody注解
添加依賴
springmvc對json的處理依賴jackson
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.11</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.11</version> </dependency>
xml配置
<mvc:annotation-driven />//不要忘了命名空間配置
@ResponseBody
如果傳輸?shù)氖菃螌觠son對象,我們后臺可以直接用 @RequestParam接收
$.ajax({
type : "post",
dataType : "json",
url : "/testRequestBody",
data:{
name:"韋德",
age:35
},
success : function(result) {
}
});@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestParam Map<String, Object> map) {
System.out.println(map);// {name=韋德, age=35}
return "index";
}如果傳輸?shù)氖嵌鄬忧短譲son對象,這個時候會就會出現(xiàn)數(shù)據(jù)丟失問題
@ResponseBody很好的解決了這個問題,它會把前臺傳輸過來的json轉(zhuǎn)化為后臺對應的對象
$.ajax({
type : "post",
dataType : "json",
url : "/testRequestBody",
contentType:"application/json",
data:JSON.stringify({
name:"韋德",
win:[2006,2012,2013],
age:35
}),
success : function(result) {
}
});@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody Map<String, Object> map) {
System.out.println(map);//{name=韋德, win=[2006, 2012, 2013], age=35}
return "index";
}需要注意的是前臺需要指定contentType為"application/json"
同時要把json對象轉(zhuǎn)化為String,否則后臺不能識別
@ResponseBody
ajax請求返回json格式,往常我們可以這樣做
private void writeJson(HttpServletResponse response, Object object) {
String json = JSON.toJSONString(object);
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
out.write(json);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close();
}
}
}這個時候 @ResponseBody就派上用場了,只需要一個注解,全部搞定
$.ajax({
type : "post",
dataType : "json",
url : "/testResponseBody",
success : function(result) {
console.info(result);
}
});@RequestMapping("/testResponseBody")
@ResponseBody
public Map<String, Object> testRequestBody() {
Map<String, Object> result = new HashMap<String, Object>();
result.put("name", "韋德");
result.put("age", 35);
return result;
}前臺console輸出
{
"age": 35,
"name": "韋德"
}總結(jié)
在網(wǎng)上看到很不錯的流程圖,作為總結(jié)吧

關(guān)于@ResponseBody于@RequestBody注解在springMvc中的區(qū)別有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
名稱欄目:@ResponseBody于@RequestBody注解在springMvc中的區(qū)別有哪些
轉(zhuǎn)載來于:http://chinadenli.net/article28/pgjgcp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站策劃、網(wǎng)站制作、面包屑導航、用戶體驗、網(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)