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

詳解SpringBoot接收參數的五種形式

 更新時間:2024年03月01日 09:50:11   作者:_Aaron___  
在Spring Boot中,接收參數可以通過多種方式實現,本文給大家介紹了SpringBoot接收參數的五種形式,并通過代碼和圖文給大家介紹的非常詳細,需要的朋友可以參考下

SpringBoot接收參數的幾種形式

在SpringBoot中獲取參數基本方式有5種,需要都掌握.

這里需要記住一個技術術語或概念

API接口: 你寫好的那個URL地址,就被稱為API接口

1. 接收常規(guī)參數

給/param/demo1這個URL接口發(fā)送id, name兩個參數

在這里插入圖片描述

以上是以GET請求類型進行發(fā)送,實際發(fā)送的請求如下:

在這里插入圖片描述

在SpringBoot端,我們可以直接在處理請求的那個方法形參上,寫上和請求參數同名的形參名稱即可

獲取到的id和name參數:

 @RequestMapping("/param/demo1")
 public void demo1(int id, String name){
 	System.out.println("獲取到的參數是:");
 	System.out.println("id:" + id);
 	System.out.println("name:" + name);
 }
 

如果發(fā)送的是POST類型的請求,需要注意:POST請求的參數是放在請求體中提交給服務器端的.
在這里插入圖片描述

我們接收的時候,也可以使用普通方法直接接收:

// 接收POST方式提交過來的數據
 @RequestMapping("/param/demo2")
 public void demo2(String gender, String name){
 	System.out.println("獲取到的數據是:");
 	System.out.println("name = " + name);
 	System.out.println("gender = " + gender);
 }
 

注意點,接收參數的時候,不一定非要和提交過來的參數順序一致,只需要名稱對應上即可.

如果提交的參數名稱和接收的名稱不一致,可以使用@RequestParam注解進行參數映射

在這里插入圖片描述

 // 接收POST方式提交過來的數據
 @RequestMapping("/param/demo2")
 public void demo2(@RequestParam("xingbie") String gender, String name){
 	System.out.println("獲取到的數據是:");
 	System.out.println("name = " + name);
 	System.out.println("gender = " + gender);
 }
 

2. 使用POJO接收參數

如果需要同時接收一批數據,而不想通過普通方式一個個接收,就可以使用POJO對象的方式來獲取提交過來的所有數據

只需要POJO對象的屬性名和提交過來的參數一一對應上就可以了

比如如果想接收name, age, school, gender這些參數

在這里插入圖片描述

寫一個POJO,屬性和提交過來的參數可以對應的上, 注意,一定要有getter/setter方法

 @Data
 public class People {
 	private String name;
 	private int age;
 	private String school;
 	private String gender;
 }

//如果同時提交過來一批數據(比如說10來個數據,我們要在形參中寫上一堆參數嗎?)
//如果同時提交過來的參數過多,我們可以考慮使用POJO方式接收
// Plain Old Java Object 
 @RequestMapping("/param/demo3") 
 public void demo3(People people){ 
    System.out.println("接收到的數據是:"); 
    System.out.println(people); 
 }
 

如果前端提交過來的數據是一個嵌套的數據,如何接收?

此時就需要使用嵌套的POJO來接收:

在這里插入圖片描述

@Data 
 public class Address { 
    private String sheng; 
    private String shi; 
    private String xian; 
 }
@Data
 public class Teacher { 
    private String name; 
    private int age; 
 	private Address address;
 }
//接收嵌套的參數
 @RequestMapping("/param/demo4")
 public void demo4(Teacher teacher){
 	 System.out.println("接收到的數據是:");
	 System.out.println(teacher);
 // 要獲取所在的市
	 String shi = teacher.getAddress().getShi();
	 System.out.println("所在市:" + shi);
 }

3. 接收數組或列表類型的數據

使用數組接收數據

在這里插入圖片描述

 // 接收數組數據
@RequestMapping("/param/demo5")
public void demo5(String[] likes){
 	System.out.println("接收到的數據是:");
 	System.out.println(Arrays.toString(likes));
 }

使用集合接收數據,此時需要使用@RequestParam注解

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

@RequestMapping("/param/demo7")
public void demo7(@RequestParam List<String> likes){
 	System.out.println("接收到的數據是:");
    System.out.println(likes);
 }

4. 接收JSON類型的數據

JSON是什么

JSON是一種輕量級的數據交換格式,易于人閱讀和編寫,可以在多種語言之間進行數據交換

JSON數據的常用結構

JSON對象

{ 
 "name": "劉旭超", 
 "age": 36,  
 "likes": ["打游戲", "看電影"] 
 }

JSON數組

 [100, 200, 300]
 ["aaa", "bbb", "ccc"]

JSON對象數組

[ 
 { 
 	"name": "劉旭超",  
 	"age": 36 
 },  
 { 
 	"name": "劉二超",  
 	"age": 36 
 },  
 { 
 	"name": "劉小超",  
 	"age": 36 
 } 
]

SpringBoot端接收JSON類型的數據

注意: 要接收JSON類型的數據,在SpringBoot的方法參數中一定要使用@RequestBody注解才可以

接收JSON對象

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

SpringBoot端需要先定義一個POJO:

比如定義一個People類,People類的屬性一一的和JSON的數據對應上:

 @Data
 public class People {
 	private String name;
 	private int age;
 	private String[] likes;
 }
@RequestMapping("/param/demo8")
 public void demo8(@RequestBody People people) {
 	System.out.println(people);
 }

接收JSON數組

假如有以下JSON數組:

在這里插入圖片描述

SpringBoot端使用@RequestBody注解,參數類型使用的數組或列表集合直接接收即可:

// 使用數組接收
@RequestMapping("/param/demo9")
public void demo8(@RequestBody Integer[] numbers) {
	System.out.println(Arrays.toString(numbers));
}
// 使用列表集合接收
@RequestMapping("/param/demo9")
public void demo8(@RequestBody List<Integer> numbers) {
	System.out.println(numbers);
}

接收對象數組

假如有以下JSON數組:

在這里插入圖片描述

JSON對象,即使使用{}包裹的,我們需要使用JAVA對象來做對應, 使用[]包裹的,我們需要使用數組或列表集合來對應

定義一個對象來接收JSON{}里的數據

@Data
public class People {
	private String name;
	private int age;
}
@RequestMapping("/param/demo9")
public void demo8(@RequestBody List<People> peopleList) {
	System.out.println(peopleList);
}

5. 接收日期類型的參數

日期格式的數據,提交給SpringBoot的時候,我們是直接可以使用普通方式接受沒有任何問題.

但是如果如上所示,我們使用字符串接收:

@RequestMapping("/param/demo10")
public void demo10(String startDate,String endDate){
// 此時接收到參數以后,startDate和endDate就是一個單純的字符串,假如我們想使用年、月、日的
//據的時候
// 我們得使用字符串的一些方法來分割或截取才能獲取到對應的年、月、日數據
	String[] dateArray =
    startDate.split("/");
	String year = dateArray[0];
	int yearInt = Interger.parseInt(year);
// 以上操作是不方便的
}

為了方便操作,SpringBoot是可以直接把前端提交過來的日期格式的數據,對應到JAVA的日期類型上,需要使用@DateTimeFormat注解+ Date類型對象來接收:

@RequestMapping("/param/demo10")
public void demo10(@DateTimeFormat(pattern = "yyyy/MM/dd") Date startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate){
	System.out.println(startDate.getMonth());
	System.out.println(endDate);
}

的數據,對應到JAVA的日期類型上,需要使用@DateTimeFormat注解+ Date類型對象來接收:

@RequestMapping("/param/demo10")
public void demo10(@DateTimeFormat(pattern = "yyyy/MM/dd") Date startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate){
	System.out.println(startDate.getMonth());
	System.out.println(endDate);
}

以上就是SpringBoot接收參數的五種形式的詳細內容,更多關于SpringBoot接收參數的資料請關注腳本之家其它相關文章!

相關文章

  • java對ArrayList排序代碼示例

    java對ArrayList排序代碼示例

    本文通過代碼示例給大家介紹java對arraylist排序,代碼簡潔易懂,感興趣的朋友一起學習吧
    2015-11-11
  • java  多線程的三種構建方法

    java 多線程的三種構建方法

    這篇文章主要介紹了java 多線程的三種構建方法的相關資料,這里提供三種實現方法,希望大家能夠掌握,很重要的基礎知識,需要的朋友可以參考下
    2017-09-09
  • Java中弱引用和軟引用的區(qū)別以及虛引用和強引用介紹

    Java中弱引用和軟引用的區(qū)別以及虛引用和強引用介紹

    很早Java API就添加了弱引用(WeakReference)和軟引用(SoftReference),但并不是所有的程序員都熟悉這兩個概念
    2014-04-04
  • Java Web基于Session的登錄實現方法

    Java Web基于Session的登錄實現方法

    這篇文章主要介紹了Java Web基于Session的登錄實現方法,涉及Java針對session的操作及表單提交與驗證技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Java并發(fā)編程之Executor接口的使用

    Java并發(fā)編程之Executor接口的使用

    今天給大家?guī)淼氖顷P于Java并發(fā)編程的相關知識,文章圍繞著Executor接口的使用展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • SpringBoot中的自定義starter

    SpringBoot中的自定義starter

    這篇文章主要介紹了SpringBoot中的自定義starter,Starter是Spring?Boot中的一個非常重要的概念,Starter相當于模塊,它能將模塊所需的依賴整合起來并對模塊內的Bean根據環(huán)境(條件)進行自動配置,需要的朋友可以參考下
    2024-01-01
  • 深入理解窗口令牌WindowToken

    深入理解窗口令牌WindowToken

    這篇文章主要介紹了窗口令牌WindowToken的概念與作用,它是對應用組件的行為進行規(guī)范管理的一個手段。WindowToken由應用組件或其管理者負責向WMS聲明并持有
    2021-08-08
  • Java通過經緯度坐標獲取兩個點之間的直線距離的示例

    Java通過經緯度坐標獲取兩個點之間的直線距離的示例

    這篇文章主要介紹了Java通過經緯度坐標獲取兩個點之間的直線距離的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • SSH框架網上商城項目第10戰(zhàn)之搭建商品類基本模塊

    SSH框架網上商城項目第10戰(zhàn)之搭建商品類基本模塊

    這篇文章主要為大家詳細介紹了SSH框架網上商城項目第10戰(zhàn)之搭建商品類基本模塊的相關資料,有一定的實用性,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Spring實戰(zhàn)之屬性覆蓋占位符配置器用法示例

    Spring實戰(zhàn)之屬性覆蓋占位符配置器用法示例

    這篇文章主要介紹了Spring實戰(zhàn)之屬性覆蓋占位符配置器用法,結合實例形式分析了Spring屬性覆蓋占位符配置器相關原理、配置與使用技巧,需要的朋友可以參考下
    2019-12-12

最新評論