SpringBoot在Controller层接收参数的常用方法(超详细)
创始人
2024-05-10 21:32:37
0

前言
在工作中,比如要实现一个功能,前端传什么参数,后端的controller层中怎么接收参数 ,封装成了什么实体对象,有些参数是在URL上使用,有些参数是在body上使用,service层中做了什么逻辑,调用dao层的sql怎么写的,前端传的参数,后端用controller中的一个方法来接收请求这些都是我们需要思考的逻辑!

下面重点讲下SpringBoot接收请求的n种姿势,建议收藏哦~

接收get请求

(1)get请求无参数

@RestController
@RequestMapping("book")
public class BookController {@Resourceprivate BookService bookService;/*** 按照条件获取书籍信息* @param bookParams* @return*/@GetMapping("/getBookLists")@ResponseBodypublic CommonResponse> getBookLists(BookParams bookParams) {// 按照查询条件分页查询书籍List books = bookService.getBookList(bookParams);CommonResponse response = CommonResponse.successInstance(books);return response;}
}

获取参数方式1:http://localhost:9527/book/getBookLists这种方式的请求,不带参数
在这里插入图片描述
(2)get请求问号拼的参数
使用@RequestParam来取问号后面拼接的参数,告诉springboot 这个user对应的就是参数中的user

  @RequestMapping("/get")public void get (@RequestParam(name = "user") String user){System.out.println("接收到参数:"+user);return "接收到参数:"+user;}

获取参数方式2:获取http://localhost:9527?user=XXX问号拼接的参数
在这里插入图片描述
(3)get请求路径URL参数
@PathVariable是取url中的变量 ,会自动进行赋值。

@GetMapping("/path/{user}")public String path(@PathVariable(name = "user") String user){System.out.println("接收到参数:"+user);return "接收到参数:"+user;}

获取参数方式3:获取路径参数,RestFull风格入参
在这里插入图片描述

接收post请求

(1) 请求的参数是json格式 ,各参数名与实体类定义的字段一致
@RequestBody将参数映射为一个java对象

   @PostMapping("/post/same")public String same(@RequestBody Users users){System.out.println("JSON 接到的:"+users.toString());return "JSON 接到的:"+users.toString();}

获取参数方式1:post请求JSON数据格式,各参数名与实体类定义的字段一样
在这里插入图片描述
(2)请求JSON数据格式,各参数名与实体类定义的字段完全不一样(需要引入fastJson依赖

com.alibabafastjson1.2.57
@PostMapping("/fastJson")public String fastJson(@RequestBody JSONObject param){System.out.println("JSON :"+param.toJSONString());return "JSON :"+param.toJSONString();}

获取参数方式2:post请求JSON数据格式,各参数名与POJO定义的字段完全不一样(需要引入fastJson依赖)

在这里插入图片描述
(3)post请求的参数名都对应可以直接获取

@RequestMapping("/sameParamName")public String sameParamName(String users , String id){System.out.println("users:"+users+"id: "+id);return "users:"+users+"id: "+id;}

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...