聊城信息网:spring-boot若何去获取前端通报的参数

admin 1个月前 (09-21) 科技 57 1

本文主要讨论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发个请求看看

这里要注意,接口路由里界说的参数名要和方式参数里的界说名字要一样,若是不一样需要通过@PathVariable来指定**

@GetMapping("/{id}")
public Integer getBannerDetail(@PathVariable(name = "id") Integer id12){
    return id12;
}
  • 查询参数

查询参数就是请求的url里?号后面跟的键值对,好比/v2/banner?id=123,下面我们重新界说一个捏词,接纳查询参数的形式获取banner详情

请求url里的查询参数通过@RequestParam注解可以和方式里的参数举行一一对应,好比现在有这么个url:/v2/banner?id=123&pos=3,那么接口的参数界说就得是@RequestParam Integer id, @RequestParam Integer pos,请求上面界说的接口看看返回值

  • 路径参数和查询参数连系

路径参数和查询时可以同时使用的,那在界说接口的时刻,同时使用这两种注解就行,好比下面的接口

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

请求一下接口

聊城信息网:spring-boot若何去获取前端通报的参数 第1张

请求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,请求一下接口看看正常不:

聊城信息网:spring-boot若何去获取前端通报的参数 第2张

上面我们使用的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给他赋值。我们请求一下看看:

聊城信息网:spring-boot若何去获取前端通报的参数 第3张

总结

以上就是我们对spring-boot举行参数吸收时处理方式的讨论,包罗路径参数以及查询参数,另有body参数的吸收,下篇文章我们将讨论一下参数的校验,敬请关注!!

> 本文链接:https://www.immortalp.com/articles/2020/05/13/1589299551179.html

迎接人人去 我的博客 瞅瞅,内里有更多关于测试实战的内容哦!!

,

SuNBet 申博

Sunbet, 申博致力与代理真诚合作官方网站www.JRd18.com!Sunbet,致力于用户诚信服务的官方网站!

AllBetGaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:聊城信息网:spring-boot若何去获取前端通报的参数

网友评论

  • (*)

最新评论

  • 欧博亚洲 2020-09-21 00:15:15 回复

    欧博亚洲客户端下载欢迎进入欧博亚洲客户端下载(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。没废话,我喜欢

    1

站点信息

  • 文章总数:658
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1144
  • 评论总数:222
  • 浏览总数:10179