SpringMVC 之 @ResponseBody 和 @RequestBody
前後端進行資料互動的時候,規定資料互動的格式,使資料互動規範而統一,是極為重要的事。一般而言,我們會採用 JSON 進行資料互動。本文暫不討論如何 JSON 的格式規範,而是解析一下如何在 SpringMVC 中方便快捷的使用 JSON 進行資料互動。那就是使用兩大註解: @ResponseBody 和 @RequestBody 。
pom.xml
我採用 Maven 來管理構建專案,要使用 @ResponseBody 和 @RequestBody ,要先在 pom.xml 裡引入 jackson 依賴包。
<!--JSON互動-->
<dependency >
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId >
<version>2.5.2</version>
</dependency>
額,至於 SpringMVC 具體使用哪個版本就需要你自己選擇了。
開啟 < mvc:annotation-driven />
為什麼要開啟 < mvc:annotation-driven /> ?
相當於註冊了 DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 兩個 bean ,配置一些 messageconverter 。即解決了 @Controller 註解的使用前提配置。而我們在使用 SpringMVC 時,一定會用到 @Controller 註解,如果沒有 < mvc:annotation-driven/> ,那麼所有的 Controller 可能就沒有解析。
Java 程式碼示例
實體類:
public class User {
private String name;
private int id;
public String getName() { return name;}
public void setName(String name) { this.name = name;}
public int getId() { return id;}
public void setId(int id) { this.id = id;}
}
Controller:
@Controller
@RequestMapping("/json")
public class Controller {
//僅傳送 JSON ,即僅使用 @ResponseBody 註解
@RequestMapping("/justResponse")
@ResponseBody
public Map<String, Object> justResponse(Model model) throws Exception {
Map<String, Object> map =new HashMap<String, Object>();
User user = new User();
user.setName("Test");
user.setId(123);
map.put("string", "string");
map.put("user", user);
return map;
}
//僅接收 JSON ,即僅使用 @RequestBody註解
@RequestMapping("/justRequest")
public User justRequest(@RequestBody User user) throws Exception {
System.out.println("This is " + user.name);
return user;
}
//收發 JSON ,即使用 @ResponseBody 和 @RequestBody
@RequestMapping("/responseAndRequest")
@ResponseBody
public Map<String, Object> responseAndRequest(@RequestBody User user) throws Exception {
System.out.println("This is " + user.name);
Map<String, Object> map =new HashMap<String, Object>();
map.put("string", "string");
map.put("user", user);
return map;
}
}
之所以會有 Map< String, Object > ,是因為資料互動時會存在多個物件,這樣可能更貼合實際。以及還有一點,確保資料格式為 JSON ,不過使用 XML 也可以,以上兩個註解也支援 XML 。
相關推薦
SpringMVC 之 @ResponseBody 和 @RequestBody
前後端進行資料互動的時候,規定資料互動的格式,使資料互動規範而統一,是極為重要的事。一般而言,我們會採用 JSON 進行資料互動。本文暫不討論如何 JSON 的格式規範,而是解析一下如何在 SpringMVC 中方便快捷的使用 JSON 進行資料互動。那就是使用
SSM框架之@ResponseBody和@RequestBody的區別及HttpMessageConverter的作用
一、@ResponseBody @ResponseBody作用於方法上,將返回結果直接以Json等格式返回,直接封裝到response物件的Body中,不經過SpringMVC的檢視解析器。一般用於前後端分離的專案,或者Ajax等非同步請求。 @ResponseBody public Stu
SpringMVC中@ResponseBody 和 @RequestBody 的作用
@RequestMapping(“url”),這裡的 url寫的是請求路徑的一部分,一般作用在 Controller的方法上,作為請求的對映地址。 程式碼: @RequestMapping(value = "/test")//類級別對映,可以沒有,一般用於減少書寫量 public cla
SpringMVC @ResponseBody和@RequestBody使用
fas true 寫入 log 方法參數 success ack esp syn @ResponseBody用法 作用: 該註解用於將Controller的方法返回的對象,根據HTTP Request Header的Accept的內容,通過適當的HttpMessageC
SpringMVC中的ResponseBody和RequestBody介紹
package name 客戶 1.8 ota pos spa pro 頁面 1ResponseBody 和 RequestBody 1簡介 @ResponseBody把後臺pojo轉換為json對象,返回到頁面 @RequestBody接受前臺json數據,把jso
spring 中註解的詳細解釋之@Responsebody與@RequestBody
可用 gif com .com profile 而是 ping get orm 1、@responseBoby @Responsebody與@RequestBody 一、預備知識:@RequestMapping RequestMapping是一個用來處理請求地
淺談@RequestMapping @ResponseBody 和 @RequestBody 註解的用法與區別
ber attribute thrown text 返回結果 mode 需要 oca 格式 1.@RequestMapping 國際慣例先介紹什麽是@RequestMapping,@RequestMapping 是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,
Ajax傳值以及接受傳值,@ResPonseBody 和 @RequestBody
Ajax對於Java程式設計人員開說可是很重要的,可以說是必會的。 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title&
註解@ResponseBody 和 @RequestBody 的作用
@ResponseBody是作用在方法上的,@ResponseBody 表示該方法的返回結果直接寫入 HTTP response body 中,一般在非同步獲取資料時使用【也就是AJAX】,在使用 @RequestMapping後,返回值通常解析為跳轉路徑,但是加上 @ResponseBody 後返
@RequestMapping @ResponseBody 和 @RequestBody 用法與區別
[email protected] 國際慣例先介紹什麼是@RequestMapping,@RequestMapping 是一個用來處理請求地址對映的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑;用於方法上,表示在類的父路徑下追加方法上註解中
springMVC中@RequestParam和@RequestBody的作用
@RequestParam和@RequestBody是什麼區別,估計很多人還是不太清楚, 因為一般用@ RequestParam就足夠傳入引數了,要說他們區別,就需要知道contentType是什麼? Content-Type: 預設為 application/x-www-form-url
@ResponseBody 和 @RequestBody 的作用
先提一嘴 @RequestMapping(“url”),這裡的 url寫的是請求路徑的一部分,一般作用在 Controller的方法上,作為請求的對映地址。 程式碼: @RequestMapping(value = "/test")//類級別對映,可以
常用註解之@ResponseBody與@RequestBody與@RestController
@ResponseBody: @ResponseBody是作用在方法上的,@ResponseBody 表示該方法的返回結果直接寫入 HTTP response body 中,一般在非同步獲取資料時使用【也就是AJAX】,在使用 @RequestMapping後,返回值通常解析為跳轉路徑,但是加上
第五章 SpringMVC之ViewResolver和View解析
過完年了,本來是想在年前將SpringMVC系列寫完的,只是在接近年末的時候沒有了一種學習心態,這兩天看了一下ViewResolver原始碼,就想盡快將這篇部落格寫出,也好完結SpringMVC的系列部落格並開始下面的學習。 自己寫的
詳述 @ResponseBody 和 @RequestBody 註解的區別
1 前言 在詳述 @ResponseBody 和 @RequestBody 註解之前,咱先了解一下 @RequestMapping 註解,@RequestMapping 是一個用來處理請求地址對映的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法
SpringMVC之HandlerMethodArgumentResolver和
SpringMVC提供了一個HandlerMethodArgumentResolver介面可以讓我們處理方法的引數,和註解結合提來,能有很強大的功能,例如SpringMVC提供的@ModelAttri
WEB之ResponseBody RequestBody RequestParam
對象 map pin csdn 獲取數據 json www. 就是 寫入 https://blog.csdn.net/shahuhubao/article/details/80800938?utm_source=blogxgwz2 @ResponseBody是作用在方法上的
springmvc之json互動406異常(Not Acceptable)和415異常(Unsupported Media Type)
一. 406異常(Not Acceptable) 1. 沒有新增jackson-databind包2. 請求的url的字尾是*.html。在springmvc中如果請求的字尾是*.html的話,是不可以響應一個json資料的,將url中的*.html改成*.action即可。 二. 415異常(Unsup
springmvc之json交互406異常(Not Acceptable)和415異常(Unsupported Media Type)
XML 數據 set -c cor data spa cti json 一. 406異常(Not Acceptable) 1. 沒有添加jackson-databind包2. 請求的url的後綴是*.html。在springmvc中如果請求的後綴是*.html的話,是不可
springMVC之解析excel xls 和 xlsx格式
一、pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</arti