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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲性色永久网址 | 亚洲欧美日韩久久一区 | 欧美日韩亚洲第一区在线 | 国产精品国产三级国产专区不 | 亚洲色图色 | 精品国产在天天线在线麻豆 | 亚洲v日韩v欧美在线观看 | 香港日本三级亚洲三级 | 边摸边吃奶边做爽视频免费 | 欧美成人精品福利在线视频 | 99这里只有精品66视频 | 亚洲国产婷婷俺也色综合 | 欧美精品一区二区三区免费播放 | 欧美一区二区三区四区视频 | 久久精品国产在热亚洲完整版 | 无删减影视免费观看 | 成人影院免费看 | 成熟女人50岁一级毛片不卡 | 麻豆天美精东果冻传媒在线 | 三体动漫在线观看免费完整版2022 | 深夜在线网址 | 日本天堂影院在线播放 | www.男人的天堂 | 韩国美女被的免费视频 | 久久精品成人免费网站 | 男人天堂网av | 大胆国模一区二区三区伊人 | 深夜成人| 无遮挡免费h肉动漫在线观看 | 村妇超级乱淫伦小说全集 | 嫩草视频在线观看视频播放 | 日本玖玖视频 | 免费日本视频 | 国产91青青成人a在线 | a级片在线播放 | 国产午夜免费视频 | bl高h荡肉古代np | 国产美女极品免费视频 | 超碰成人在线播放 | yellow最新视频2019 | 91色香sxmv最网页版新地址 |