亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

springboot如何去獲取前端傳遞的參數的實現

瀏覽:3日期:2023-05-18 10:34:03

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

url里的參數

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

路徑參數

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

下面我們設計了一個簡陋的接口,來演示路徑參數的獲取

@RestController@RequestMapping(value = '/v2/banner')public class BannerController { @GetMapping('/{id}') public Integer getBannerDetail(@PathVariable Integer id){ return id; }}

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

springboot如何去獲取前端傳遞的參數的實現

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

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

查詢參數

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

springboot如何去獲取前端傳遞的參數的實現

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

springboot如何去獲取前端傳遞的參數的實現

路徑參數和查詢參數結合

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

@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;}

請求一下接口

springboot如何去獲取前端傳遞的參數的實現

請求body里的參數

先來思考一個問題,當前端傳遞過來一個json的數據,我們的方法通過什么樣的形式能夠接受到參數呢?

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

Map

設計簡單的banner創建接口,參數通過Map來接收,創建成功后,添加一個id,然后將傳遞的數據和id一起返回

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

這里@RequestBody的這個注解來將body里的參數,轉化成一個map,請求一下接口看看正常不:

springboot如何去獲取前端傳遞的參數的實現

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

自定義對象Dto

我們將接收請求參數的對象稱作為數據傳輸對象,一般定義為XXXDto,這里我們定義一個創建banner時用來接收參數的對象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標記BannerCreateDto對象,spring-boot會自動調用對象的getter和setter給他賦值。我們請求一下看看:

springboot如何去獲取前端傳遞的參數的實現

總結

以上就是我們對spring-boot進行參數接收時處理方式的討論,包括路徑參數以及查詢參數,還有body參數的接收,下篇文章我們將討論一下參數的校驗,敬請關注!!

到此這篇關于springboot如何去獲取前端傳遞的參數的實現的文章就介紹到這了,更多相關springboot 獲取前端傳遞參數內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 小明永久免费看aⅴ片 | 亚洲欧美在线看 | 一级毛片一级毛片一级毛片一级毛片 | 国产精品综合网 | 被公侵犯肉体中文字幕一区二区 | 国产视频一区二区在线播放 | 色婷婷视频在线观看 | 国产对白91色拍高清精品 | 日本香蕉视频 | 亚洲图片在线播放 | 色婷婷久久综合中文网站 | 欧美黄一片 | 免费国产成人高清在线观看视频 | 精品精品国产高清a毛片牛牛 | 毛片大全网站 | 日本巨乳中文字幕 | 国产一区美女 | 久久综合一 | 特级女人十八毛片a级 | 亚洲韩精品欧美一区二区三区 | 91久久精品国产一区二区 | 97超级碰碰碰久久久观看 | 精品一区二区高清在线观看 | 久久dvd| 一级免费黄色毛片 | 在线免费观看黄色大片 | 国产美女一级特黄毛片 | 日韩国产欧美在线观看一区二区 | 国产精品第五页 | 黄片毛片免费看 | 亚洲欧美另类日韩 | 亚洲欧美第一 | 无码日韩精品一区二区免费 | 依人成人| 在线免费黄色片 | 色天使色婷婷丁香久久综合 | 免费在线观影网站 | a一级爱做片免费观看欧美 a一级黄 | 国产福利视频 | 深夜影院在线视频观看 | 久久精品韩国日本国产 |