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);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM