spring boot 传参

spring boot 中的Controller或者RestController接收参数的方法是一样的。这章目标是对几种常用的传参都写个例子。

创建package: com.biboheart.demos.api,这个包里放置API接口的RestController

在com.biboheart.demos.api包中创建一个class: ParamController。这章的示例都在这个类中进行。

PathVariable

路径中包含参数,这种情况适合与传递一个不能为空值的参数。比如有些应用中,查询某个企业的数据,必须包含企业的编号,就可以在地址里接收这个编号。

在ParamController中增加一个函数PathParam

package com.biboheart.demos.api;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { @RequestMapping(value = "/demo/param/path/{sn}") public String pathParam(@PathVariable String sn) { return "接收到参数:" + sn; }}

路径中的参数通过{sn}接收值。

使用名称接收参数

使用名称接收参数比较直观,我用得比较多。不用注解。跟客户端传的参数同名就可以接收到。如下例子中的reqParam

package com.biboheart.demos.api;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { .... @RequestMapping(value = "/demo/param/req") public String reqParam(String name, Integer age) { return "接收到参数{name:" + name + ";age:" + age + "}"; }}

也可以用get传参

使用对象接收参数

上面用参数名称接收值,只要与请求时的名称一致就能接收到参数值。如果需要传递的参数比较多的时候,就不适合一个一个参数写在函数里了,那样很不方便,也容易出错。可以把这些参数写到一个对象里接收。如下例子

创建一个package: com.biboheart.demos.model,创建一个类Person

package com.biboheart.demos.model;import lombok.Data;import lombok.ToString;@Data@ToStringpublic class Person { private String name; private Integer age; private Integer sex; private String addres;}

用Person对象接收参数

package com.biboheart.demos.api;import com.biboheart.demos.model.Person;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { ... @RequestMapping(value = "/demo/param/model") public String modelParam(Person person) { return "接收到参数:" + person.toString(); }}

虽然这样的方式也能接收get传参,但是因为需要传的参数多了,用get显得不太方便。这里就不测试GET方式请求了。

RequestBody

有的时候,需要接收JSON传参。比如某些服务的调用需要开发一个回调函数接收对方的回调并获得参数值为结果,对方回调回来的值是JSON格式的值,这时候就需要接收JSON传参数了。用RequestBody可以接收到JSON传值。

package com.biboheart.demos.api;import com.biboheart.demos.model.Person;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { ... @RequestMapping(value = "/demo/param/json") public String jsonParam(@RequestBody Person person) { return "接收到参数:" + person.toString(); }}

需要JSON请求才能正确接到值

设置请求头

delphi中的函数传参如何传枚举参数_我是这样使用SpringBoot(API传参)相关推荐

  1. delphi中move函数的用法

    delphi中move函数的用法 -------------------------------------------------------------------------------- 20 ...

  2. Delphi中 StrToIntDef函数的用法

    Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strto ...

  3. 在Delphi中FormatDateTime函数的用法

    在Delphi中FormatDateTime函数的用法  function FormatDateTime(const Format: string; DateTime: TDateTime): str ...

  4. delphi中的函数传参如何传枚举参数_shell脚本的函数介绍使用和工作常用案例。建议收藏...

    #前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例. #简介 1.函数也具有别名类似的功能 2.函数是把程序里多次调用相同的代码部分定义成一份,然后给这份代码 ...

  5. Delphi中类型转换函数

    类型转换函数 函数 功能 Chr 将一个有序数据转换为一个ANSI字符 Ord 将一个有序类型值转换为它的序号 Round 转换一个实型值为四舍五入后的整型值 Trunc 转换一个实型值为小数截断后的 ...

  6. delphi中pos函数怎么用?

    pos(a,b)函数用法如下:取出子串a,在父串b中第一次出现的位置. 例如: pos('b','abcd'): 返回结果是2: 在delphi中使用汇编异常的简单,只用使用关键字asm ....en ...

  7. php中strrpos函数的返回值类型是型_函数strrpos('Welcome to learning PHP','e')的返回值是___________。...

    [简答题]参照资料中"实训3-5用户登录和退出"的要求,完成实训内容,将实训报告作为答案附件提交.实训报告文件名格式:"实训3-5用户登录和退出20170215xx姓名& ...

  8. python中get函数是什么意思_详解python中get函数的用法(附代码)_后端开发

    strncmp函数用法详解_后端开发 strncmp函数为字符串比较函数,其函数语法为"int strncmp ( const char * str1, const char * str2, ...

  9. delphi中的函数传参如何传枚举参数_Python基础笔记Day05函数

    Python函数 function 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().但 ...

最新文章

  1. mbr备份以及破坏后如何恢复
  2. eslint 学习笔记
  3. CFileDialog 在使用sdk 后出现异常 Access violation
  4. How to monitor your mobile application network traffic in your own LAPTOP
  5. kettle-多文件合并
  6. Win10解决Android Studio:Gradle sync failed: Failed to open zip file.
  7. 3dmax、python3、Rational Rose、DTLite、commons-math3、VM12、DreamWeaver、SPSS、sqlserver2008、mySQL等软件安装包最全集合
  8. 通用技术标模板,技术方案书
  9. 最新elasticsearch版本与jdk版本对应图-2022-08-01
  10. 13 . 外部中断实验
  11. w ndows10更改浏览器,win10电脑修改默认浏览器的三种方法
  12. ligerui联动清空控件值
  13. 论文解读:Predator-Pray biogeography Based Optimization (PPBBO)
  14. matlab 语音识别为文字,语音识别(Speech Recognition)是让机器通过识别和理解过程把语音信号转变为相应的文本...
  15. 基于百度图像识别api的游戏(coc)辅助工具分析
  16. 《游戏开发基础》课程论文丨基于Unity与Bolt的抗美援朝主题3D游戏设计
  17. UNcrackable-Level1绕过root检测
  18. 去王道论坛,趁热回忆2020考研专业课真题吧,一起攒人品!
  19. 一个程序员的五年总结,给你不一样的角度
  20. 【2019年07月22日】A股最便宜的股票

热门文章

  1. duilib环境配置以及简单入门介绍
  2. 视频制作中的绿幕与拜耳阵列
  3. Spring Data JPA 从入门到精通~Naming命名策略详解及其实践
  4. 南开大学java考试试题_2014秋学期南开大学《Java语言程序设计》在线作业附答案...
  5. python 文本文件处理_53 Python - txt普通文件处理
  6. 外设驱动库开发笔记19:BMP280压力温度传感器驱动
  7. 限流算法(漏桶算法、令牌桶算法)对比
  8. js svg语音波动动画_11 个非常受欢迎的 JavaScript 动画库,值得学习!
  9. html鼠标悬停效果_【开发小技巧】023—如何使用HTML和CSS实现3D文字效果
  10. vba 跳到下一个循环_遍历工作薄和工作表(For Each循环的利用)