SpringBoot在Controller层接收参数的n种姿势(超详细)
作者:是阿俏同学吖 发布时间:2023-01-28 00:54:39
前言
在工作中,比如要实现一个功能,前端传什么参数,后端的controller
层中怎么接收参数 ,封装成了什么实体对象,有些参数是在URL上使用,有些参数是在body上使用,service层中做了什么逻辑,调用dao层的sql怎么写的,前端传的参数,后端用controller中的一个方法来接收请求这些都是我们需要思考的逻辑!
下面重点讲下SpringBoot
接收请求的n种姿势,建议收藏哦~
接收get请求
(1)get请求无参数
@RestController
@RequestMapping("book")
public class BookController {
@Resource
private BookService bookService;
/**
* 按照条件获取书籍信息
* @param bookParams
* @return
*/
@GetMapping("/getBookLists")
@ResponseBody
public CommonResponse<List<Book>> getBookLists(BookParams bookParams) {
// 按照查询条件分页查询书籍
List<Book> 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依赖
)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.57</version>
</dependency>
@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;
}
来源:https://blog.csdn.net/weixin_42274846/article/details/128662901


猜你喜欢
- List接口介绍—ArrayList有序、可重复线程不安全,因为没有synchronized修饰ArrayList源码结论ArrayList
- 本文简单介绍如何动态创建接口interface的实现实例对象,包含两个知识点:1.如何获取接口interface的所有实现实例对象?2.如何
- 好久没有写有关UI的博客了,刚刚翻了一下之前的博客,最近一篇有关UI的博客:Android UI设计系列之自定义Dialog实现各种风格的对
- JAVA用于开发图形界面应用的 SWING 组件包功能强大,使用方便。接下来我们就使用其写一个简单的图形界面小程序:加法计算器。第一步:首先
- 本文主要介绍LINQ查询操作符LINQ查询为最常用的操作符定义了一个声明语法。还有许多查询操作符可用于Enumerable类。下面的例子需要
- 今天,简单讲讲如何监听手机屏幕是否锁屏。实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN
- 本文实例讲述了Android动画之补间动画。分享给大家供大家参考,具体如下:前面讲了《Android动画之逐帧动画(Frame Animat
- 目录概述代码实现完整代码概述在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备(主要是手机),并将PC上的文件通过蓝牙
- 数据类型转换就是将数据(变量、表达式的结果)从一种类型转换到另一种类型。例如,为了保存小数你可以将int类型的变量转换为double类型。数
- 今天看到一个ios写的图灵机器人,直接去官网(http://www.tuling123.com/openapi/)看了下API接入,太简单了
- Random random = new Random((int)(DateTime.Now.Ticks)); &nbs
- JAXBContext 设置xml节点属性在使用JAXBContext将javaBean转化为xml时会出现这样的需求:<xml ve
- 基于IDEA生成可执行jar包1.编写class的代码,注意一定要有main()方法才可以生成jar包,main()方法可以没有内容。例如:
- 本文实例讲述了Winform实现调用asp.net数据接口的方法,分享给大家供大家参考。具体实现方法如下:一、问题:最近一个WPF项目需要改
- 一、进行粒子效果生成练习1、生成一个空项目Assets->Import Package->Custom Package->
- Lambda用到了JDK8自带的一个函数式接口Comparator<T>。准备一个Apple类public class Appl
- Java使用OpenCV3.2实现视频读取与播放,供大家参考,具体内容如下OpenCV从3.x版本开始其JAVA语言的SDK支持视频文件读写
- 接口定义了一系列的行为规范,为类型定义一种Can-Do的功能。例如,实现IEnumerable接口定义了GetEnumerator方法,用于
- 大家好,记得上次我带着大家一起实现了一个类似与淘宝客户端中带有的图片滚动播放器的效果,但是在做完了之后,发现忘了加入图片自动播放的功能(或许
- Java 内存划分: 在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计