原文鏈接http://zhhll.icu/2021/01/09/%E6%A1%86%E6%9E%B6/springmvc/springmvc%E8%BF%94%E5%9B%9Ejson/
springmvc回傳json
現在很多專案已經前后端分離了,不再使用jsp或者使用jsp但是資料使用ajax來獲取,實作區域重繪的效果,那么springmvc中如何不回傳頁面而回傳頁面所需要的資料呢,
前后端資料互動現在大多使用json來表示(當然有一部分還是使用xml的),那如何在springmvc中回傳json資料呢,
回傳json
依賴
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.3</version>
</dependency>
介面層面的改動
在controller回傳時不再回傳ModelAndView,而是回傳具體的資料物件,在方法上添加@ResponseBody注解
@ResponseBody
@RequestMapping("/testJson")
public User testJson(){
User user = new User();
user.setName("張三");
user.setId(2);
return user;
}
Why?
為什么只是加了一個依賴,加一個注解就可以完成回傳json資料呢,
這里用到了一個介面,HttpMessageConverter介面,該介面可以將請求資訊轉為所對應的入參,將回傳結果轉為對應型別的回應資訊
public interface HttpMessageConverter<T> {
boolean canRead(Class<?> var1, MediaType var2);
boolean canWrite(Class<?> var1, MediaType var2);
List<MediaType> getSupportedMediaTypes();
T read(Class<? extends T> var1, HttpInputMessage var2) throws IOException, HttpMessageNotReadableException;
void write(T var1, MediaType var2, HttpOutputMessage var3) throws IOException, HttpMessageNotWritableException;
}
spring提供了兩種方式
- 使用@RequestBody或@ResponseBody對處理的方法進行處理
- 使用HttpEntity/ResponseEntity作為方法的入參或回傳值
由于本身的博客百度沒有收錄,博客地址http://zhhll.icu
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266204.html
標籤:Java
上一篇:執行緒池使用的N種姿勢
