SpringBoot中接收POST参数的几种方式详解
作者:藏蓝色攻城狮
这篇文章主要介绍了SpringBoot中接收POST参数的几种方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
SpringBoot中接收POST参数的几种方式
今天在做一个vue前后端分离项目的过程中,踩了一个坑,记录一下
前端如下:
用户名字段:username
密码字段:password
提交后,发现后端怎么也收不到参数,总结如下:
常见的接收post参数,有三种
1、接收表单数据
@RestController public class xxx { @PostMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password){ System.out.println("用户名:" + username + ", 密码: " + password); return "用户名:" + username + ", 密码: " + password; } }
额外参数:
- 使用 required = false 标注参数是非必须的。
- 使用 defaultValue 给参数指定个默认值。
2、接收map数据
map结构数据接收方式:
@RestController public class xxx { @PostMapping("/login") public String login(@RequestParam Map<String, Object> map){ System.out.println("用户名:" + map.get("username") + ", 密码: " + map.get("password") ); return "用户名:" + map.get("username") + ", 密码: " + map.get("password"); } }
3、接收数组或List接收多个参数
@RestController public class xxx { @PostMapping("/login") public String login(@RequestParam String[] n){ return Arrays.toString(n);; } }
4、接收json数据参数
明显看出,是json结构的,是我大意了,没有闪~~
注意:使用的是 @RequestBody
@RestController public class xxx { @PostMapping("/login") public String login(@RequestBody Map<String, Object> map){ System.out.println("用户名:" + map.get("username") + ", 密码: " + map.get("password") ); return "用户名:" + map.get("username") + ", 密码: " + map.get("password"); } }
Springboot接收GET和POST请求参数
接收GET请求参数:
@RestController public class test { //参数可以为空 @GetMapping("/test") public String hello(@RequestParam(name = "name", required = false) String name) { return "获取到的name是:" + name; } }
没有参数时为null
Controller 还可以直接使用 map 来接收所有的请求参数:
@RestController public class HelloController { @GetMapping("/test") public String hello(@RequestParam Map<String, Object> params) { return "name:" + params.get("name") + "<br>age:" + params.get("age"); } }
使用map接收post请求参数:params.get()当中的参数就是表单的name值
@RestController public class HelloController { @PostMapping("/hello") public String hello(@RequestParam Map<String,Object> params) { return "name:" + params.get("name") + "\nage:" + params.get("age"); } }
<form action="http://localhost:8080/hello" method="post"> <input type="text" name="name" value="" /> <input type="text" name="age" value="" /> <input type="submit" value="提交"/> </form>
到此这篇关于SpringBoot中接收POST参数的几种方式的文章就介绍到这了,更多相关SpringBoot接收POST参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!