SpringBoot中Get請求和POST請求接收參數(shù)示例詳解
1、Get請求
1.1 方法形參接收參數(shù) 這種方式一般適用參數(shù)比較少的情況,并且前后端參數(shù)名稱必須保持一致
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(String name,String age) { log.info("name:{}",name); log.info("age:{}",age); } }
參數(shù)用 @RequestParam 標注,使用value屬性指定參數(shù)名,required屬性表示這個參數(shù)是否必傳
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "age", required = false) String age) { log.info("name:{}",name); log.info("age:{}",age); } }
1.2 實體類接收參數(shù)
注意:Get 請求以實體類接收參數(shù)時,不能用 RequestParam 注解進行標注,因為不支持這樣的方式獲取參數(shù)。
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(Student student) { log.info("name:{}",student.getName()); log.info("age:{}",student.getAge()); } } @Data class Student{ private String name; private Integer age; }
1.3 通過HttpServletRequest接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(HttpServletRequest request) { String name = request.getParameter("name"); String phone = request.getParameter("age"); log.info("name:{}",name); log.info("age:{}",age); } }
1.4 通過@PathVariable接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query/{name}/{age}") public void getStudent(@PathVariable String name, @PathVariable String age) { log.info("name:{}",name); log.info("age:{}",age); } }
1.5 接收數(shù)組參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(String[] names) { Arrays.stream(names).forEach(System.out::println); } }
1.6 接受集合參數(shù)
注意:SpringBoot 接收集合參數(shù),必須用 @RequestParam 注解聲明!
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(@RequestParam List<String> names) { names.forEach(System.out::println); } }
2、POST請求
2.1 方法形參接收參數(shù) 前后端參數(shù)名稱必須保持一致
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(String name,String age) { log.info("name:{}",name); log.info("age:{}",age); } }
參數(shù)用 @RequestParam 標注,使用value屬性指定參數(shù)名,required屬性表示這個參數(shù)是否必傳
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "age", required = false) String age) { log.info("name:{}",name); log.info("age:{}",age); } }
2.2 通過HttpServletRequest接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(HttpServletRequest request) { String name = request.getParameter("name"); String phone = request.getParameter("age"); log.info("name:{}",name); log.info("age:{}",age); } }
2.3 通過@PathVariable接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save/{name}/{age}") public void saveStudent(@PathVariable String name, @PathVariable String age) { log.info("name:{}",name); log.info("age:{}",age); } }
2.4 通過param方式提交參數(shù),以實體類接收參數(shù)
直接以實體類可以接收param、form-data、 x-www-form-urlencoded 提交的參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(Student student) { log.info("name:{}",student.getName()); log.info("age:{}",student.getAge()); } } @Data class Student{ private String name; private Integer age; }
2.5 請求體以JSON格式提交參數(shù),通過 @RequestBody 注解接收參數(shù)
接受實體類JSON參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestBody Student student) { log.info("name:{}",student.getName()); log.info("age:{}",student.getAge()); } } @Data class Student{ private String name; private Integer age; }
接收數(shù)組或者集合類JSON參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestBody String[] names) { Arrays.stream(names).forEach(System.out::println); } @PostMapping("/save") public void saveStudent(@RequestBody List<String> names) { names.forEach(System.out::println); } }
2.6 通過 Map 接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestParam Map<String,Object> map) { log.info("name:{}",map.get("name")); log.info("age:{}",map.get("age")); } }
2.7 通過@RequestBody 接收一個參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestBody String name) { log.info("name:{}",name); } }
到此這篇關于SpringBoot中Get請求和POST請求接收參數(shù)詳解的文章就介紹到這了,更多相關SpringBoot Get請求和POST請求接收參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring?Boot?Admin?添加報警提醒和登錄驗證功能的具體實現(xiàn)
報警提醒功能是基于郵箱實現(xiàn)的,當然也可以使用其他的提醒功能,如釘釘或飛書機器人提醒也是可以的,但郵箱報警功能的實現(xiàn)成本最低,所以本文我們就來看郵箱的報警提醒功能的具體實現(xiàn)2022-01-01詳解MyBatis多數(shù)據(jù)源配置(讀寫分離)
這篇文章主要介紹了詳解MyBatis多數(shù)據(jù)源配置(讀寫分離),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01SpringBoot搭建多數(shù)據(jù)源的實現(xiàn)方法
說起多數(shù)據(jù)源,一般都來解決那些問題呢,主從模式或者業(yè)務比較復雜需要連接不同的分庫來支持業(yè)務。本文主要介紹了SpringBoot搭建多數(shù)據(jù)源的實現(xiàn)方法,感興趣的可以了解一下,感興趣的可以額了解一下2021-12-12Java在Map轉Json字符串時出現(xiàn)"\"轉義字符的解決辦法
當一個Map被轉成Json字符串后,被添加到另一個Map中,會出現(xiàn)被加上“\”轉義字符的情況,這個時候該如何解決呢,下面就來和小編一起了解一下2023-07-07SpringBoot集成Access?DB實現(xiàn)數(shù)據(jù)導入和解析
microsoft?office?access是由微軟發(fā)布的關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它結合了?microsoft?jet?database?engine?和?圖形用戶界面兩項特點,是一種關系數(shù)據(jù)庫工具,本文給大家介紹了SpringBoot集成Access?DB實現(xiàn)數(shù)據(jù)導入和解析,需要的朋友可以參考下2024-11-11