最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何去獲取前端傳遞的參數(shù)的實(shí)現(xiàn)

 更新時(shí)間:2020年05月13日 09:02:24   作者:測試軒  
這篇文章主要介紹了springboot如何去獲取前端傳遞的參數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文主要討論spring-boot如何獲取前端傳過來的參數(shù),這些參數(shù)主要有兩大類,一類是URL里的參數(shù),一個(gè)是請求body里的參數(shù)

url里的參數(shù)

通過url里傳過來的參數(shù)一般有三種方式,下面我們來看一下

路徑參數(shù)

路徑參數(shù)就是說在請求路徑里攜帶了幾個(gè)參數(shù),比如有一個(gè)查詢banner詳情的接口,/v2/banner/123,這里的123就是參數(shù),可以表示banner的ID。

下面我們設(shè)計(jì)了一個(gè)簡陋的接口,來演示路徑參數(shù)的獲取

@RestController
@RequestMapping(value = "/v2/banner")
public class BannerController {

  @GetMapping("/{id}")
  public Integer getBannerDetail(@PathVariable Integer id){
    return id;
  }
}

獲取banner詳情完整接口路徑是/v2/banner/{id},這里的id就是路徑參數(shù),在方法的傳參里,用@PathVariable注解標(biāo)明那個(gè)參數(shù)用來接收請求路徑傳遞過來的值,通過postman發(fā)個(gè)請求看看

這里要注意,接口路由里定義的參數(shù)名要和方法參數(shù)里的定義名字要一樣,如果不一樣需要通過@PathVariable來指定**

@GetMapping("/{id}")
public Integer getBannerDetail(@PathVariable(name = "id") Integer id12){
  return id12;
}

查詢參數(shù)

查詢參數(shù)就是請求的url里?號后面跟的鍵值對,比如/v2/banner?id=123,下面我們重新定義一個(gè)借口,采用查詢參數(shù)的形式獲取banner詳情

請求url里的查詢參數(shù)通過@RequestParam注解可以和方法里的參數(shù)進(jìn)行一一對應(yīng),比如現(xiàn)在有這么個(gè)url:/v2/banner?id=123&pos=3,那么接口的參數(shù)定義就得是@RequestParam Integer id, @RequestParam Integer pos,請求上面定義的接口看看返回值

路徑參數(shù)和查詢參數(shù)結(jié)合

路徑參數(shù)和查詢時(shí)可以同時(shí)使用的,那在定義接口的時(shí)候,同時(shí)使用這兩種注解就行,比如下面的接口

@GetMapping("/{id}")
public Map<String, Object> getBannerDetail(@PathVariable Integer id, @RequestParam Integer pos){
  Map<String, Object> body = new HashMap<>();
  body.put("id", id);
  body.put("pos", pos);
  return body;
}

請求一下接口

請求body里的參數(shù)

先來思考一個(gè)問題,當(dāng)前端傳遞過來一個(gè)json的數(shù)據(jù),我們的方法通過什么樣的形式能夠接受到參數(shù)呢?

一般來說有兩種形式,Map和自定義對象,下面我們分別來介紹一下。

Map

設(shè)計(jì)簡單的banner創(chuàng)建接口,參數(shù)通過Map來接收,創(chuàng)建成功后,添加一個(gè)id,然后將傳遞的數(shù)據(jù)和id一起返回

@PostMapping(value = "/create")
public Map<String, Object> createBanner(@RequestBody Map<String, Object> banner){
  banner.put("id", 1243);
  return banner;
}

這里@RequestBody的這個(gè)注解來將body里的參數(shù),轉(zhuǎn)化成一個(gè)map,請求一下接口看看正常不:

上面我們使用的Map,它是一個(gè)接口,在具體接收數(shù)據(jù)的時(shí)候,肯定會(huì)用一個(gè)Map的實(shí)現(xiàn)類,這就會(huì)設(shè)計(jì)到裝箱拆箱的過程,那么頻繁的裝箱拆箱會(huì)有一定到的性能損耗,所以這種方式一般并不推薦使用。

自定義對象Dto

我們將接收請求參數(shù)的對象稱作為數(shù)據(jù)傳輸對象,一般定義為XXXDto,這里我們定義一個(gè)創(chuàng)建banner時(shí)用來接收參數(shù)的對象BannerCreateDto.

public class BannerCreateDto {
  private String name;
  private Integer pos;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public Integer getPos() {
    return pos;
  }

  public void setPos(Integer pos) {
    this.pos = pos;
  }
}

在Controller具體使用:

@PostMapping(value = "/create")
public Map<String, Object> createBanner(@RequestBody BannerCreateDto dto){
  Map<String, Object> res = new HashMap<>();
  res.put("id", 10000);
  res.put("name", dto.getName());
  res.put("pos", dto.getPos());
  return res;
}

用@RequestBody標(biāo)記BannerCreateDto對象,spring-boot會(huì)自動(dòng)調(diào)用對象的getter和setter給他賦值。我們請求一下看看:

總結(jié)

以上就是我們對spring-boot進(jìn)行參數(shù)接收時(shí)處理方式的討論,包括路徑參數(shù)以及查詢參數(shù),還有body參數(shù)的接收,下篇文章我們將討論一下參數(shù)的校驗(yàn),敬請關(guān)注?。?/p>

到此這篇關(guān)于springboot如何去獲取前端傳遞的參數(shù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)springboot 獲取前端傳遞參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring使用注解存儲(chǔ)Bean對象的方法詳解

    Spring使用注解存儲(chǔ)Bean對象的方法詳解

    在使用學(xué)習(xí)使用 Spring過程中,當(dāng)我們要實(shí)現(xiàn)一個(gè)功能的時(shí)候,先應(yīng)該考慮的是有沒有相應(yīng)的注解是實(shí)現(xiàn)對應(yīng)功能的,Spring 中很多功能的配置都是可以依靠注解實(shí)現(xiàn)的,而本篇中介紹的是使用注解來存儲(chǔ) Bean 對象
    2023-07-07
  • Java實(shí)現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    Java實(shí)現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法,結(jié)合實(shí)力形式分析了質(zhì)因數(shù)分解的原理與實(shí)現(xiàn)方法,涉及java數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • Java8新特性詳解與實(shí)戰(zhàn)分享

    Java8新特性詳解與實(shí)戰(zhàn)分享

    Java 8作為Java語言的一個(gè)重要更新,引入了一系列新特性,這些特性不僅提高了代碼的可讀性和可維護(hù)性,還增強(qiáng)了程序的性能,本文將詳細(xì)介紹Java 8中的幾個(gè)關(guān)鍵使用技巧,并通過代碼案例來展示它們的應(yīng)用,需要的朋友可以參考下
    2024-06-06
  • 詳解Spring中的@PropertySource注解使用

    詳解Spring中的@PropertySource注解使用

    這篇文章主要介紹了Spring的@PropertySource注解使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • java依賴混亂存在的問題與解決方案

    java依賴混亂存在的問題與解決方案

    這篇文章主要為大家介紹了java依賴混亂存在的問題與解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java基礎(chǔ)元注解基本原理示例詳解

    Java基礎(chǔ)元注解基本原理示例詳解

    這篇文章主要為大家介紹了Java基礎(chǔ)元注解基本原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 淺談java 增強(qiáng)型的for循環(huán) for each

    淺談java 增強(qiáng)型的for循環(huán) for each

    下面小編就為大家?guī)硪黄獪\談java 增強(qiáng)型的for循環(huán) for each。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • Java中的static關(guān)鍵字修飾屬性和方法(推薦)

    Java中的static關(guān)鍵字修飾屬性和方法(推薦)

    這篇文章主要介紹了Java中的static關(guān)鍵字修飾屬性和方法,包括哪些成員屬性可以被static修飾,靜態(tài)屬性的訪問方法示例詳解,需要的朋友可以參考下
    2022-04-04
  • Java之BigDecimal實(shí)現(xiàn)詳解

    Java之BigDecimal實(shí)現(xiàn)詳解

    這篇文章主要介紹了Java之BigDecimal實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java實(shí)現(xiàn)mp3合并的方法

    java實(shí)現(xiàn)mp3合并的方法

    這篇文章主要介紹了java實(shí)現(xiàn)mp3合并的方法,是Java操作多媒體文件的一個(gè)典型應(yīng)用,非常具有參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10

最新評論

饶阳县| 萝北县| 通化县| 富阳市| 白朗县| 馆陶县| 遵义县| 甘孜| 桂东县| 三原县| 凤台县| 通山县| 富蕴县| 南通市| 昆山市| 平顺县| 陵川县| 康乐县| 大港区| 丹寨县| 浏阳市| 金堂县| 玉山县| 武强县| 巫山县| 镇江市| 涞源县| 资中县| 新建县| 新疆| 子长县| 斗六市| 凤山市| 漳州市| 迭部县| 平阳县| 察雅县| 宁安市| 平果县| 海阳市| 合川市|