springboot接收post、get参数

post方式

1、前端传json数组对象
  [{"name":"张三","age":15},{"name":"李四","age":20}]
 
使用List<Map>接收
-----------------------------------------------------------------------------
   @PostMapping("/upArray")
public void upArray(@RequestBody List<Map<String,Object>> list){
for (Map<String, Object> stringObjectMap : list) {
Object name = stringObjectMap.get("name");
Object age = stringObjectMap.get("age");
System.out.println(name);
System.out.println(name.getClass().getTypeName());
System.out.println(age);
}
}


使用List<User>接收
-----------------------------------------------------------------------------
@PostMapping("/upArray1")
public void upArray1(@RequestBody List<User> list){
for (User user : list) {
String name = user.getName();
Integer age = user.getAge();
System.out.println(name);
System.out.println(name.getClass().getTypeName());
System.out.println(age);
}
}


2、前端传json对象
  {"name":"张三","age":15}

使用JSONObject对象接收,需要引入一个包
-----------------------------------------------------------------------------
   <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>fastjson</artifactId>
       <version>1.2.74</version>
   </dependency>
-----------------------------------------------------------------------------
   @PostMapping("/upArray2")
public void upArray2(@RequestBody JSONObject jsonObject){
System.out.println(jsonObject.getClass().getTypeName());
System.out.println(jsonObject);
String name = jsonObject.getString("name");
System.out.println(name);
}


使用实体对象接收
-----------------------------------------------------------------------------
@PostMapping("/upArray3")
public void upArray3(@RequestBody User user){
System.out.println(user.getClass().getTypeName());
System.out.println(user);
}


使用Map接收
-----------------------------------------------------------------------------
@PostMapping("/upArray4")
public void upArray3(@RequestBody Map<String, Object> map){
System.out.println(map.getClass().getTypeName());
System.out.println(map);
System.out.println(map.get("name"));
}

get方式

http://localhost:8080/yyds?name=张三
1、直接使用形参接收
   @GetMapping("/yyds")
public void yyds(String name,Integer age){
System.out.println(name);
System.out.println(age);
}


-----------------------------------------------------------------------------
2、使用@RequestParam接收,这个注解有三个参数:
   value:对应url中的参数名
required:是否是必须的,默认为true(使用版本spring-boot-starter-web 2.5.5
defaultVaule:默认值
   注意:当defaultVaule有默认值时,required为true不会异常,当defaultVaule没有值时,请求的参数缺失、或者是请求里对应的参数为null时,会报异常,1的接收方式就相当于required=false,并且defaultVaule无值
-----------------------------------------------------------------------------
   @GetMapping("/yyds1")
public void yyds1(@RequestParam(value = "name",required = true) String name,@RequestParam(value = "age",required = false,defaultValue = "23") Integer age){
System.out.println(name);
System.out.println(age);
}


-----------------------------------------------------------------------------
3、使用@PathVariable接收数据,这个注解有两个参数
   value:绑定路径上的{xxx}
   required:默认为true,是否必须,为true时路径上面必须要有相应的{xxx}
   value="name"是绑定路径上面的{name},路径上没有相应的{name}时会报错,required为false时,如果路径上没有对应的{name},不报错,但是相应的参数值为null,{XXX}@PathVariable的位置可以不一一对应,value值可以和形参的字符值不一致,如下:
-----------------------------------------------------------------------------
@GetMapping("/yyds2/{name}/{age}")
public void yyds2(@PathVariable(value = "age",required = false) Integer username,@PathVariable(value = "name",required = false) String age){
System.out.println(username);
System.out.println(age);
}

 

posted @   入世则饮江湖浊酒一杯  阅读(2164)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示