欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC JSON數(shù)據(jù)傳輸參數(shù)超詳細講解

 更新時間:2023年02月07日 08:31:11   作者:tanglin_030907031026  
有時候參數(shù)的傳遞還需要更多的參數(shù),比如一個獲取用戶信息的請求中既有用戶ID等基本參數(shù),還要求對查詢結果進行分頁,針對這種場景,一般都會將分頁參數(shù)封裝成一個對象,然后將它和基本參數(shù)一起傳給控制器

前面我們說過,現(xiàn)在比較流行的開發(fā)方式為異步調用。前后臺以異步方式進行交換,傳輸?shù)臄?shù)據(jù)使用的是==JSON==,所以前端如果發(fā)送的是JSON數(shù)據(jù),后端該如何接收?

對于JSON數(shù)據(jù)類型,我們常見的有三種:

  • json普通數(shù)組(["value1","value2","value3",...])
  • json對象({key1:value1,key2:value2,...})
  • json對象數(shù)組([{key1:value1,...},{key2:value2,...}])

對于上述數(shù)據(jù),前端如何發(fā)送,后端如何接收?

一、JSON普通數(shù)組

步驟1:pom.xml添加依賴

SpringMVC默認使用的是jackson來處理json的轉換,所以需要在pom.xml添加jackson依賴

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.9.0</version></dependency>

步驟2:PostMan發(fā)送JSON數(shù)據(jù)

步驟3:開啟SpringMVC注解支持

在SpringMVC的配置類中開啟SpringMVC的注解支持,這里面就包含了將JSON轉換成對象的功能。

@Configuration
@ComponentScan("com.itheima.controller")
//開啟json數(shù)據(jù)類型自動轉換
@EnableWebMvc
public class SpringMvcConfig {
}

步驟4:參數(shù)前添加@RequestBody

//使用@RequestBody注解將外部傳遞的json數(shù)組數(shù)據(jù)映射到形參的集合對象中作為數(shù)據(jù)
@RequestMapping("/listParamForJson")
@ResponseBody
public String listParamForJson(@RequestBody List<String> likes){
    System.out.println("list common(json)參數(shù)傳遞 list ==> "+likes);
    return "{'module':'list common for json param'}";
}

步驟5:啟動運行程序

JSON普通數(shù)組的數(shù)據(jù)就已經(jīng)傳遞完成,下面針對JSON對象數(shù)據(jù)和JSON對象數(shù)組的數(shù)據(jù)該如何傳遞呢?

二、JSON對象數(shù)據(jù)

我們會發(fā)現(xiàn),只需要關注請求和數(shù)據(jù)如何發(fā)送?后端數(shù)據(jù)如何接收?

請求和數(shù)據(jù)的發(fā)送:

{
    "name":"itcast",
    "age":15
}

后端接收數(shù)據(jù):

@RequestMapping("/pojoParamForJson")
@ResponseBody
public String pojoParamForJson(@RequestBody User user){
    System.out.println("pojo(json)參數(shù)傳遞 user ==> "+user);
    return "{'module':'pojo for json param'}";
}

啟動程序訪問測試

說明:

address為null的原因是前端沒有傳遞數(shù)據(jù)給后端。

如果想要address也有數(shù)據(jù),我們需求修改前端傳遞的數(shù)據(jù)內容:

{
	"name":"itcast",
	"age":15,
    "address":{
        "province":"beijing",
        "city":"beijing"
    }
}

再次發(fā)送請求,就能看到address中的數(shù)據(jù)

三、JSON對象數(shù)組

如何集合中保存多個POJO該如何實現(xiàn)?

請求和數(shù)據(jù)的發(fā)送:

[
    {"name":"itcast","age":15},
    {"name":"itheima","age":12}
]

后端接收數(shù)據(jù):

@RequestMapping("/listPojoParamForJson")
@ResponseBody
public String listPojoParamForJson(@RequestBody List<User> list){
    System.out.println("list pojo(json)參數(shù)傳遞 list ==> "+list);
    return "{'module':'list pojo for json param'}";
}

啟動程序訪問測試

小結

SpringMVC接收JSON數(shù)據(jù)的實現(xiàn)步驟為:

(1)導入jackson包

(2)使用PostMan發(fā)送JSON數(shù)據(jù)

(3)開啟SpringMVC注解驅動,在配置類上添加@EnableWebMvc注解

(4)Controller方法的參數(shù)前添加@RequestBody注解

知識點1:@EnableWebMvc

名稱@EnableWebMvc
類型==配置類注解==
位置SpringMVC配置類定義上方
作用開啟SpringMVC多項輔助功能

知識點2:@RequestBody

名稱@RequestBody
類型==形參注解==
位置SpringMVC控制器方法形參定義前面
作用將請求中請求體所包含的數(shù)據(jù)傳遞給請求參數(shù),此注解一個處理器方法只能使用一次

@RequestBody與@RequestParam區(qū)別

區(qū)別

  • @RequestParam用于接收url地址傳參,表單傳參【application/x-www-form-urlencoded】
  • @RequestBody用于接收json數(shù)據(jù)【application/json】

應用

  • 后期開發(fā)中,發(fā)送json格式數(shù)據(jù)為主,@RequestBody應用較廣
  • 如果發(fā)送非json格式數(shù)據(jù),選用@RequestParam接收請求參數(shù)

到此這篇關于SpringMVC JSON數(shù)據(jù)傳輸參數(shù)超詳細講解的文章就介紹到這了,更多相關SpringMVC JSON數(shù)據(jù)傳輸參數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中不可或缺的關鍵字volatile詳析

    Java中不可或缺的關鍵字volatile詳析

    volatile是Java提供的一種輕量級的同步機制,下面這篇文章主要給大家介紹了關于Java中不可或缺的關鍵字volatile的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Spring Cloud Gateway 服務網(wǎng)關快速實現(xiàn)解析

    Spring Cloud Gateway 服務網(wǎng)關快速實現(xiàn)解析

    這篇文章主要介紹了Spring Cloud Gateway 服務網(wǎng)關快速實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Java實現(xiàn)年獸大作戰(zhàn)游戲詳解

    Java實現(xiàn)年獸大作戰(zhàn)游戲詳解

    春節(jié)要到了,看慣了前端各種小游戲,確實做得很好,很精致。本文將為大家介紹一款java版本的年獸大作戰(zhàn)游戲,感興趣的小伙伴可以試一試
    2022-01-01
  • 一文詳解如何在Java中自定義異常類

    一文詳解如何在Java中自定義異常類

    這篇文章主要介紹了如何在Java中自定義異常類的相關資料,在Java編程中開發(fā)者可以通過繼承Exception類或其子類創(chuàng)建自定義異常,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • 淺析Spring的事務實現(xiàn)原理

    淺析Spring的事務實現(xiàn)原理

    這篇文章主要為大家詳細介紹了Spring中事務實現(xiàn)的原理,文中的示例代碼講解詳細,對我們學習Spring有一定的幫助,需要的可以參考一下
    2022-11-11
  • Java語言Lang包下常用的工具類介紹

    Java語言Lang包下常用的工具類介紹

    這篇文章主要介紹了Java語言Lang包下常用的工具類介紹,次奧變覺得挺不錯的,這里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況

    MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況

    這篇文章主要介紹了MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • sharding-jdbc中的事務詳細解讀

    sharding-jdbc中的事務詳細解讀

    這篇文章主要介紹了sharding-jdbc中的事務詳細解讀,sharding-jdbc在分庫分表方面提供了很大的便利性,在使用DB的時候,通常都會涉及到事務這個概念,而在分庫分表的環(huán)境上再加上事務,就會使事情變得復雜起來,需要的朋友可以參考下
    2023-12-12
  • java教程之java注解annotation使用方法

    java教程之java注解annotation使用方法

    這篇文章主要介紹了java注解annotation使用方法,注解可以定義到方法上,類上,一個注解相當與一個類,就相當于實例了一個對象,加上了注解,就相當于加了一個標志
    2014-01-01
  • Spring?Boot將@RestController誤用于視圖跳轉問題解決

    Spring?Boot將@RestController誤用于視圖跳轉問題解決

    這篇文章主要為大家介紹了Spring?Boot將@RestController誤用于視圖跳轉問題解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06

最新評論