当前位置: 首页 > 后端技术 > Python

spring-boot如何获取前端传递的参数

时间:2023-03-26 11:44:44 Python

本文主要讨论spring-boot如何获取前端传递的参数。这些参数主要有两种,一种是url中的参数,一种是requestbody中的参数通过url中的参数传递url中的参数一般有三种方式。让我们看一下路径参数。路径参数是指请求路径中携带了几个参数。比如有一个查询banner详情的接口/v2/banner/123,其中123是参数,可以代表banner的ID。下面我们设计一个简单的接口来演示路径参数的获取@RestController@RequestMapping(value="/v2/banner"){返回ID;}}获取banner详情完整的界面路径为/v2/banner/{id},其中id为路径参数。在该方法的参数传递中,使用@PathVariable注解来指明使用哪个参数来接收请求路径对于传递的值,通过postman发送请求可以看到这里。注意接口路由中定义的参数名称必须与方法参数中定义的名称相同。如果不同,需要通过@PathVariable指定**@GetMapping("/{id}")publicIntegergetBannerDetail(@PathVariable(name="id")Integerid12){returnid12;}查询参数query参数在请求的url中?键值对后跟数字,比如/v2/banner?id=123,下面我们重新定义一个借口,以查询参数的形式获取banner详情。请求url中的查询参数可以通过@RequestParam注解与方法中的参数一一对应,比如现在有这样一个url:/v2/banner?id=123&pos=3,那么接口的参数定义必须是@RequestParamIntegerid,@RequestParamIntegerpos,request上面定义的接口看返回值path参数和query参数可以同时使用,组合路径参数和查询。在定义接口的时候,同时使用这两个注解。比如下面的接口@GetMapping("/{id}")publicMapgetBannerDetail(@PathVariableIntegerid,@RequestParamIntegerpos){Mapbody=newHashMap<>();body.put("id",id);body.put("位置",位置);returnbody;}请求接口请求body中的参数。对于一个json数据,我们的方法可以接受什么形式的参数呢?一般来说有两种形式,Map和customobjects。下面分别介绍一下地图设计的简易banner制作界面。通过Map接收参数。创建成功后,添加一个id,然后将数据连同id一起传递return@PostMapping(value="/create")publicMapcreateBanner(@RequestBodyMapbanner){banner.put("id",1243);returnbanner;}这里@RequestBody这个注解是用来将body中的参数转换成map的。请求接口看是否正常:我们上面用的Map就是一个接口。在接收数据的时候,我们肯定会用到一个Map实现类。会设计装箱和拆箱的流程,所以频繁的装箱和拆箱会有一定的性能损失,所以一般不推荐这种方式。自定义对象Dto我们将接收请求参数的对象称为数据传输对象,一般定义为XXXDto,这里我们定义一个对象,用于创建banner时接收参数BannerCreateDto.publicclassBannerCreateDto{privateStringname;私有整数pos;publicStringgetName(){返回名称;}publicvoidsetName(Stringname){this.name=name;}publicIntegergetPos(){返回位置;}publicvoidsetPos(Integerpos){this.pos=pos;}}Controller中具体使用:@PostMapping(value="/create")publicMapcreateBanner(@RequestBodyBannerCreateDtodto){Mapres=newHashMap<>();res.put("id",10000);res.put("姓名",dto.getName());res.put("pos",dto.getPos());returnres;}用@RequestBody标记BannerCreateDto对象,spring-boot会自动调用对象的getter和setter给他赋值。我们来看一下:综上所述,以上就是我们对spring-boot的参数接收的处理方式的讨论,包括路径参数和查询参数,以及body参数的接收。下一篇我们会讨论参数的校验,敬请关注!!>本文链接:https://www.immortalp.com/art...欢迎来到我的博客,里面有更多关于实测的内容!!