当前位置: 代码迷 >> 综合 >> SpringMVC中获取请求路径参数@PathVariable 和@RequestBody以及@RequestParam的区别
  详细解决方案

SpringMVC中获取请求路径参数@PathVariable 和@RequestBody以及@RequestParam的区别

热度:13   发布时间:2023-11-25 01:26:59.0

一、@PathVariable

  • @PathVariable 更加适用于restful风格的url
  • 请求路径:http://localhost:8806/mybatisDemo/detail/1
    @GetMapping("/detail/{id}")public ApiResponse getApplicationById(@PathVariable Long id){
    PubTest pubTest = mybatisDemoService.getById(id);return success(pubTest);}

在这里插入图片描述

二、@RequestBody

  • 请求路径:http://localhost:8806/mybatisDemo/page
  • @RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或者 json等】封装为对应的 JavaBean 对象。
    @GetMapping("/page")public ApiResponse list(@RequestBody JSONObject params){
    int index = params.getInteger("index");int pageNum = params.getInteger("pageNum");PubTest pub = new PubTest();IPage<PubTest> pubApplications = mybatisDemoService.list(new Page<>(index,pageNum),pub);return success(pubApplications);}

在这里插入图片描述

三、@RequestParam

@ RequestParam 获取查询参数。即url?name=这种形式 ,就像以前JSP与Servlet所在的时代,通过?传参,用于get/post。springboot默认情况就是它,类似不写注解,@RequestParam将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

    @GetMapping("/detail")public ApiResponse getApplicationById(@RequestParam("id") Long id){
    PubTest pubTest = mybatisDemoService.getById(id);return success(pubTest);}

在这里插入图片描述

  相关解决方案