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这种方式的请求,不带参数

SpringBoot在Controller层接收参数的n种姿势(超详细)

(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问号拼接的参数

SpringBoot在Controller层接收参数的n种姿势(超详细)

(3)get请求路径URL参数
@PathVariable是取url中的变量 ,会自动进行赋值。

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

获取参数方式3:获取路径参数,RestFull风格入参

SpringBoot在Controller层接收参数的n种姿势(超详细)

接收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数据格式,各参数名与实体类定义的字段一样

SpringBoot在Controller层接收参数的n种姿势(超详细)

(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依赖)

SpringBoot在Controller层接收参数的n种姿势(超详细)

(3)post请求的参数名都对应可以直接获取

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

SpringBoot在Controller层接收参数的n种姿势(超详细)

来源:https://blog.csdn.net/weixin_42274846/article/details/128662901

标签:SpringBoot,Controller,接收参数
0
投稿

猜你喜欢

  • 基于Java实现缓存Cache的深入分析

    2023-08-15 20:53:59
  • Android中使用TextView实现文字跑马灯效果

    2023-07-28 11:07:33
  • Spring实现处理跨域请求代码详解

    2023-11-25 12:28:34
  • Opencv EigenFace人脸识别算法详解

    2023-07-21 19:30:17
  • java 图片验证码的实现代码

    2023-11-09 13:33:52
  • Flutter之Timer实现短信验证码获取60s倒计时功能的代码

    2023-07-20 20:00:30
  • 详解Java线程-守护线程与用户线程

    2023-11-25 00:17:29
  • Java访问WebService返回XML数据的方法

    2023-11-10 21:23:09
  • 一篇文章告诉你JAVA Mybatis框架的核心原理到底有多重要

    2023-11-13 06:20:10
  • Java并发的CAS原理与ABA问题的讲解

    2023-11-25 12:17:21
  • java队列实现方法(顺序队列,链式队列,循环队列)

    2023-06-24 01:43:17
  • C语言实现两个矩阵相乘

    2023-07-22 12:41:20
  • 利用Flutter制作经典贪吃蛇游戏

    2023-07-21 07:04:13
  • 基于Java语言MD5加密Base64转换方法

    2023-11-24 00:22:41
  • Spring Bean自动装配入门到精通

    2023-11-03 07:29:09
  • 学习Java HashMap,看这篇就够了

    2023-11-11 11:18:56
  • jsp、struts、spring、mybatis实现前端页面功能模块化拆分的方案

    2023-11-25 07:38:00
  • android TextView中识别多个url并分别点击跳转方法详解

    2023-06-21 04:42:32
  • 详解Swagger接口文档和常用注解的使用

    2023-11-24 15:35:21
  • 详解MyBatis XML配置解析

    2023-11-23 13:02:09
  • asp之家 软件编程 m.aspxhome.com