亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

@ResponseBody于@RequestBody注解在springMvc中的區別有哪些

發布時間:2020-11-20 15:47:29 來源:億速云 閱讀:248 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關@ResponseBody于@RequestBody注解在springMvc中的區別有哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

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

如果傳輸的是單層json對象,我們后臺可以直接用 @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";
}

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

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

$.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對象轉化為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": "韋德"
}

總結

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

@ResponseBody于@RequestBody注解在springMvc中的區別有哪些

關于@ResponseBody于@RequestBody注解在springMvc中的區別有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾西县| 崇左市| 乐安县| 黄浦区| 贵定县| 武川县| 临沭县| 炎陵县| 延川县| 江口县| 攀枝花市| 都安| 松桃| 江津市| 荥阳市| 界首市| 汉寿县| 伊川县| 内丘县| 安宁市| 松原市| 滦南县| 东方市| 龙川县| 广灵县| 平度市| 白玉县| 霍城县| 广饶县| 巩义市| 灵宝市| 仪陇县| 札达县| 武功县| 大渡口区| 师宗县| 彝良县| 荃湾区| 册亨县| 新野县| 中阳县|