【SpringBoot篇】5種類型參數傳遞json數據傳參的操作

🎊專欄【SpringBoot】
🍔喜歡的詩句:天行健,君子以自強不息。
🎆音樂分享【如愿】
🎄歡迎并且感謝大家指出小吉的問題🥰

文章目錄

  • 🌺普通參數
  • 🌺POJO參數
  • 🌺嵌套pojo參數
  • 🌺數組參數
  • 🌺集合參數
  • 🎄json數據傳參
    • 🛸json格式
    • 🛸嵌套json格式
    • 🛸集合格式

在這里插入圖片描述
當涉及到參數傳遞時,Spring Boot遵循HTTP協議,并支持多種參數傳遞方式。這些參數傳遞方式可以根據請求的不同部分進行分類。

  • 路徑參數(Path Parameters):
    路徑參數是指在URL路徑中的一部分,用于標識資源或指定操作。路徑參數通常以{}的形式出現在URL中,如/users/{id},其中id就是一個路徑參數。路徑參數可以在URL中動態地改變,從而實現對不同資源的操作。使用路徑參數時,Spring Boot使用@PathVariable注解將路徑參數綁定到方法參數上。
  • 查詢參數(Query Parameters):
    查詢參數通常作為URL的一部分,以?開始,以key=value的形式出現,多個參數之間使用&連接,如/users?id=1&name=John。查詢參數主要用于篩選或過濾資源。在Spring Boot中,可以使用@RequestParam注解將查詢參數綁定到方法參數上。
  • 請求體參數(Request Body Parameters):
    請求體參數是通過HTTP請求體中發送的數據,通常用于傳遞復雜結構的數據,如JSON、XML等。請求體參數可以包含多個字段,并且可以表示更為復雜的數據模型。在Spring Boot中,可以使用@RequestBody注解將請求體參數綁定到方法參數上。
  • 表單參數(Form Parameters):
    表單參數通常使用HTML表單提交的數據,可以通過application/x-www-form-urlencoded或multipart/form-data格式傳輸。表單參數與查詢參數類似,但是通常用于提交數據而不是進行篩選。在Spring Boot中,可以使用@RequestParam注解將表單參數綁定到方法參數上。
  • 請求頭參數(Request Header Parameters):
    請求頭參數包含在HTTP請求的頭部信息中,可以用于傳遞附加的元數據,如鑒權信息、用戶代理等。在Spring Boot中,可以使用@RequestHeader注解將請求頭參數綁定到方法參數上。

使用理論進行講解時,我們可以了解這些參數傳遞方式的原理和用途。根據HTTP協議的規范和Spring Boot的設計,開發人員可以選擇合適的參數傳遞方式來滿足業務需求。這些參數傳遞方式在RESTful API開發中非常常見,可以用于處理各種場景下的數據傳輸。

🌺普通參數

我們在UserController類中寫入這一段代碼

 @RequestMapping("/commonParamDifferentname")@ResponseBodypublic String commonParamDifferentName(@RequestParam("name") String userName,int age){System.out.println("普通參數傳遞 userName ==> "+userName);System.out.println("普通參數傳遞 age ==> "+age);return "{'module':'common param different name'}";}

在這里插入圖片描述

接收成功
在這里插入圖片描述

🌺POJO參數

我們在User類中寫入這一段代碼

package com.example.domain;public class User {private String name;private int age;private Address address;@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address=" + address +'}';}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

我們在UserController類中寫入這一段代碼

//POJO參數:請求參數與形參對象中的屬性對應即可完成參數傳遞@RequestMapping("/pojoParam")@ResponseBodypublic String pojoParam(User user){System.out.println("pojo參數傳遞 user ==> "+user);return "{'module':'pojo param'}";}

在這里插入圖片描述
運行成功
在這里插入圖片描述

🌺嵌套pojo參數

適用于下面這種,可以反復寫
在這里插入圖片描述

我們在Address類中寫入這一段代碼

package com.example.domain;
public class Address {private String province;private String city;@Overridepublic String toString() {return "Address{" +"province='" + province + '\'' +", city='" + city + '\'' +'}';}public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}
}

在UserController里面寫入這一段代碼

  @RequestMapping("/pojoContainPojoParam")@ResponseBodypublic String pojoContainPojoParam(User user){System.out.println("pojo嵌套pojo參數傳遞 user ==> "+user);return "{'module':'pojo contain pojo param'}";}

繼續測試
在這里插入圖片描述

運行成功
在這里插入圖片描述

🌺數組參數

@RequestMapping("/arrayParam")@ResponseBodypublic String arrayParam(String[] likes){System.out.println("數組參數傳遞 likes ==> "+ Arrays.toString(likes));return "{'module':'array param'}";}

在這里插入圖片描述

在這里插入圖片描述
運行成功
在這里插入圖片描述

🌺集合參數

@RequestMapping("/listParam")@ResponseBodypublic String listParam(@RequestParam List<String> likes){System.out.println("集合參數傳遞 likes ==> "+ likes);return "{'module':'list param'}";}

在這里插入圖片描述

在這里插入圖片描述
運行成功
在這里插入圖片描述

🎄json數據傳參

我們在SpringMvcConfig里面加入這一段代碼@EnableWebMvc,開啟json數據自動轉換

在這里插入圖片描述

🛸json格式

我們找到上面 集合參數 的代碼,把@RequestParam修改為@RequestBody

   @RequestMapping("/listParamForJson")@ResponseBodypublic String listParamForJson(@RequestBody List<String> likes){System.out.println("list common(json)參數傳遞 list ==> "+likes);return "{'module':'list common for json param'}";}

在這里插入圖片描述

這里選擇json,在下面寫入數據
在這里插入圖片描述

發現可以運行成功
在這里插入圖片描述

🛸嵌套json格式

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

在這里插入圖片描述
運行成功

在這里插入圖片描述

🛸集合格式

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

如果報錯,重啟一下就好了
在這里插入圖片描述

在這里插入圖片描述
運行成功
在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211187.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211187.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uniapp切換頁面時報錯問題

我們來看如下錯誤&#xff1a; 該錯誤的意思是不能切換到 tabbar 頁面。tabbar頁面通常是公共頁面或者底部導航欄&#xff0c;如果我們用 navigateTo 或者 redirectTo 都不能實現頁面切換。 我們有兩種方式&#xff1a; 第一種是用 switchTab 來進行切換&#xff0c;但注意切…

xml文本轉Java對象

Java對象轉String public static String toData(Object object) throws Exception {JAXBContext jc JAXBContext.newInstance(object.getClass());Marshaller m jc.createMarshaller();StringWriter output new StringWriter(2048);m.marshal(object, output);String data …

STM32之SPI總線

一、SPI總線概述 1、SPI總線介紹 SPI是一種通信協議&#xff0c;它是摩托羅拉公司研發出來的一種通信協議&#xff0c;就有自己的特點&#xff08;串行&#xff0c;并行&#xff0c;單工&#xff0c;半雙工&#xff0c;全雙工&#xff0c;同步異步&#xff09;。它主要應用于音…

ffprobe命令行超詳細使用詳解

本文做為閱讀ffprobe源碼的前課程。為了之后方便理解ffprobe的源碼,咱們先從ffprobe的命令學習。 課程內容如下: 文章目錄 一、ffprobe主要選項說明1、每次使用ffprobe都打印編譯環境的信息,太煩了2、如何分析媒體文件中存在的流信息3、如何指定查詢某路流信息4、查看輸入文…

CS106L2023 and CS106B 環境配置(詳細教程)

1.問題&#xff1a; &#xff08;1&#xff09;CS106L 運行./setup.sh 腳本時出錯 &#xff08;windows 請下載git&#xff0c;在git bash 打開運行&#xff09; &#xff08;2&#xff09;CS106B&#xff0c;QT構建 構建錯誤&#xff1a;一般構建錯誤&#xff0c;例如 Erro…

【Java+MySQL】前后端連接小白教程

目錄 &#x1f36d;【IntelliJ IDEA】操作 &#x1f36d;1. 連接MySQL數據庫 &#x1f308;1.1 錯誤解決 &#x1f36d;2. 操作MySQL數據庫 &#x1f308;2.1 雙擊查看表數據 &#x1f308;2.2 編寫SQL腳本 &#x1f36d;【IntelliJ IDEA】 IntelliJ IDEA是由JetBrains公司…

2013年全國碩士研究生入學統一考試管理類專業學位聯考數學試題——解析版

文章目錄 2013 級考研管理類聯考數學真題一、問題求解&#xff08;本大題共 15 小題&#xff0c;每小題 3 分&#xff0c;共 45 分&#xff09;下列每題給出 5 個選項中&#xff0c;只有一個是符合要求的&#xff0c;請在答題卡上將所選擇的字母涂黑。真題&#xff08;2013-01&…

Django自定義中間件

自定義中間件 傳統方法的的五大鉤子函數&#xff1a;&#xff08;需要調用MiddlewareMixin類&#xff09; process_request&#xff0c;請求剛到來&#xff0c;執行視圖之前&#xff1b;正序 process_view&#xff0c;路由轉發到視圖&#xff0c;執行視圖之前&#xff1b;正序…

【Linux】地址空間

本片博客將重點回答三個問題 什么是地址空間&#xff1f; 地址空間是如何設計的&#xff1f; 為什么要有地址空間&#xff1f; 程序地址空間排布圖 在32位下&#xff0c;一個進程的地址空間&#xff0c;取值范圍是0x0000 0000~ 0xFFFF FFFF 回答三個問題之前我們先來證明地址空…

【Python數據結構與算法】—— 搜索算法 | 期末復習不掛科系列

? &#x1f308;個人主頁: Aileen_0v0&#x1f525;系列專欄: 數據結構與算法&#x1f4ab;個人格言:"沒有羅馬,那就自己創造羅馬~" 這篇博客主要探索的是計算機科學常見問題---搜索算法 “時間緊&#xff0c;任務重&#xff01;” 話不多說&#xff0c;開始今天…

HarmonyOS--ArkTS(0)--目錄

官方API文檔&#xff1a; HarmonyOS應用開發官網 - 華為HarmonyOS打造全場景新服務 華為開發者官方網站_創新從這里開始

MySQL的鎖機制

1.簡介 MySQL的隔離性是由鎖機制來保證的。鎖是計算機協調多個進程或線程并發地訪問某一資源你的機制。當多線程并發地訪問某個數據時&#xff0c;尤其是在涉及金錢等安全敏感性數據的時候&#xff0c;需要保證數據在任意時刻最多只有一個線程可以對其進行修改&#xff0c;從而…

Android 分享小結

關于作者&#xff1a;CSDN內容合伙人、技術專家&#xff0c; 從零開始做日活千萬級APP。 專注于分享各領域原創系列文章 &#xff0c;擅長java后端、移動開發、商業變現、人工智能等&#xff0c;希望大家多多支持。 目錄 一、導讀二、微信 分享 三、 QQ 、QQ空間&#xff08;Qz…

MATLAB基礎運算

矩陣和數字相乘 就是矩陣里面每個元素跟這個數字乘一遍&#xff0c;無論是點乘還是叉乘&#xff0c;對于這個都一樣。 >> Aones(3) A 1 1 11 1 11 1 1 >> 10*A ans 10 10 1010 10 1010 10 10 矩陣和矩陣叉乘 能不能相…

C++普通函數與函數模板的調用規則

調用規則 如果函數模板和普通函數都可以實現&#xff0c;優先調用普通函數可以通過空模板參數列表來強制調用函數模板函數模板也可以重載如果函數模板可以產生更好的匹配&#xff0c;優先調用函數模板 總結&#xff1a;既然提供了函數模板&#xff0c;最好就不要提供普通函數…

CSS 如何居中 DIV

如何居中 div&#xff1f; 水平居中&#xff1a;給 div 設置一個寬度&#xff0c;然后添加 margin:0 auto 屬性 div {width: 200px;margin: 0 auto; }水平居中&#xff0c;利用 text-align:center 實現 .container {background: rgba(0, 0, 0, 0.5);text-align: center;font…

基于ssm鐵嶺河醫院醫患管理系統論文

摘 要 21世紀的今天&#xff0c;隨著社會的不斷發展與進步&#xff0c;人們對于信息科學化的認識&#xff0c;已由低層次向高層次發展&#xff0c;由原來的感性認識向理性認識提高&#xff0c;管理工作的重要性已逐漸被人們所認識&#xff0c;科學化的管理&#xff0c;使信息存…

logback的使用

1 logback概述 SLF4J與其它日志組件調用關系圖如下所示。 SLF4J&#xff0c;即Java中的簡單日志門面&#xff08;Simple Logging Facade for Java&#xff09;&#xff0c;不是具體的日志解決方案&#xff0c;它只服務于各種各樣的日志系統。 SLF4J最常用的日志實現框架是&am…

2023 CCF中國軟件大會(CCF ChinaSoft) “區塊鏈可靠性分析”論壇成功召開

2023年12月1日上午&#xff0c;2023年度CCF中國軟件大會區塊鏈可靠性分析論壇成功召開。 本次論壇由中山大學鄭子彬、澳門科技大學張濤、中科院軟件所蔡彥和中山大學陳嘉弛四位老師聯合組織舉辦。本論壇重點關注區塊鏈可靠性&#xff0c;邀請了近年來在區塊鏈可靠性研究方面有先…

【postgresql】ERROR: INSERT has more expressions than target columns

執行下面sql insert into apply_account_cancellation3 select * from pply_account_cancellation; 返回下面錯誤信息 insert into apply_account_cancellation3 select * from apply_account_cancellation > ERROR: INSERT has more expressions than target colu…