一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|

服務器之家 - 編程語言 - JAVA教程 - springMvc注解之@ResponseBody和@RequestBody詳解

springMvc注解之@ResponseBody和@RequestBody詳解

2020-10-27 16:35小嘚瑟 JAVA教程

本篇文章主要介紹了springMvc注解之@ResponseBody和@RequestBody詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

簡介

springmvc對json的前后臺傳輸做了很好封裝,避免了重復編碼的過程,下面來看看常用的@ResponseBody和@RequestBody注解

添加依賴

springmvc對json的處理依賴jackson

?
1
2
3
4
5
6
7
8
9
10
<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配置

?
1
<mvc:annotation-driven />//不要忘了命名空間配置

@ResponseBody

如果傳輸的是單層json對象,我們后臺可以直接用 @RequestParam接收

?
1
2
3
4
5
6
7
8
9
10
11
$.ajax({
  type : "post",
  dataType : "json",
  url : "/testRequestBody",
  data:{
    name:"韋德",
    age:35
  },
  success : function(result) {
  }
});
?
1
2
3
4
5
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestParam Map<String, Object> map) {
 System.out.println(map);// {name=韋德, age=35}
 return "index";
}

如果傳輸的是多層嵌套json對象,這個時候會就會出現數據丟失問題

@ResponseBody很好的解決了這個問題,它會把前臺傳輸過來的json轉化為后臺對應的對象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
$.ajax({
  type : "post",
  dataType : "json",
  url : "/testRequestBody",
  contentType:"application/json"
  data:JSON.stringify({
    name:"韋德",
    win:[2006,2012,2013],
    age:35
  }),
  success : function(result) {
  }
});
?
1
2
3
4
5
@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對象轉化為String,否則后臺不能識別

@ResponseBody

ajax請求返回json格式,往常我們可以這樣做

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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就派上用場了,只需要一個注解,全部搞定

?
1
2
3
4
5
6
7
8
$.ajax({
  type : "post",
  dataType : "json",
  url : "/testResponseBody",
  success : function(result) {
    console.info(result);
  }
});
?
1
2
3
4
5
6
7
8
@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輸出

?
1
2
3
4
{
  "age": 35,
  "name": "韋德"
}

總結

在網上看到很不錯的流程圖,作為總結吧

springMvc注解之@ResponseBody和@RequestBody詳解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/zhaoguhong/p/6882776.html?utm_source=tuicool&utm_medium=referral

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: www.俺去啦 | 红色播放器 | 第一次不是你高清在线观看 | 日本天堂影院在线播放 | 武侠古典久久亚洲精品 | chinese帅男gayvideo| 紧身裙女教师miad711在线 | 成人快手破解版 | 日韩欧美在线观看综合网另类 | 日b在线观看 | 成 人 免费 小说在线观看 | 九九热免费在线观看 | 亚洲久草在线 | 美女扒开胸罩露出奶了无遮挡免费 | 亚洲男人天堂网站 | 青草热久精品视频在线观看 | 91制片厂制作果冻传媒2021 | 国产91精品久久久久久久 | 国产精品视频久 | 506070老熟肥妇bbwxx视频 500第一精品 | 波多野结衣中文字幕在线 | 亚洲欧美综合区自拍另类 | 99成人| 午夜深情在线观看免费 | 99热这里有免费国产精品 | 特黄特级高清免费视频毛片 | 国产日日操 | 亚洲欧美另类第一页 | 舔穴吸奶 | 午夜AV国产欧美亚洲高清在线 | 国产在线视频在线观看 | 国产999在线观看 | 美女奶口隐私免费视频网站 | 18日本xxxxxxⅹxx96 | 大学生初次破苞免费视频 | 精品无码国产AV一区二区三区 | 亚洲AV永久无码精品老司机蜜桃 | 五月色综合婷婷综合俺来也 | 青青草影院在线观看 | 99亚洲| 男人午夜免费视频 |