SpringBoot Controller接收參數(shù)的幾種常用方式
SpringBoot Controller接收參數(shù)的常用方式
在Controller中加入@RestController
,效果等于@Controller
+ @ResponseBody
。
1 請(qǐng)求路徑參數(shù)
直接把表單里面的參數(shù)寫進(jìn) Controller 相應(yīng)方法的形參中去,這個(gè)獲取參數(shù)的方法適合get提交,而不適合post提交。
@PathVariable
獲取(這個(gè)當(dāng)然不分get和post了,是url提取嘛)
@RequestMapping("/userInfo/{id}") public String userInfo(@PathVariable String id) { System.out.println(id); return id; }
http://localhost:8080/userInfo/142857
@RequestParam
獲取查詢參數(shù),如url?id=1428571
- 當(dāng)請(qǐng)求參數(shù)名與方法形參變量名相同時(shí),可不加
@RequestParam
注解 @RequestParam
注解的required屬性默認(rèn)為true,若參數(shù)不是必須傳遞需改為false
@RequestMapping("/userInfo") public String userInfo(@RequestParam(name = "id") String id) { System.out.println(id); return id; }
http://localhost:8080/userInfo?id=12345671
2 實(shí)體參數(shù)
通過建立一個(gè)bean
來獲取參數(shù):
package com.example.helloworld.model; public class User { private String id; private String name; private Notebook notebook; User(String id, String name) { this.id = id; this.name = name; this.notebook = new Notebook(); } public String getName() { return name; } }
@RequestMapping("/userInfo") public String userInfo(User user) { System.out.println(user.getName()); return user.getName(); }
http://localhost:8080/problemBook?id=142857&time=2022-01-01 00:00:00
3 日期參數(shù)
http://localhost:8080/problemBook?id=142857&time=2022-01-01 00:00:00
@RequestMapping("/problemBook") public String problemBook(String id, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time) { System.out.println(id); System.out.println(time); return "OK"; }
但“yyyy-MM-dd”就識(shí)別有問題……
4 Json Body參數(shù)
通常用于Post請(qǐng)求。
使用RequestBody
注解。
@PostMapping("/finishProblem") public String finishProblem(@RequestBody User user) { System.out.println(user.getName()); return "OK"; }
也可以使用一個(gè)map接收:
@PostMapping("/finishProblem") public String finishProblem(@RequestBody Map<String, String> params) { System.out.println(params.get("uid")); System.out.println(params.get("problemId")); return "OK"; }
5 返回結(jié)果
@ResponseBody
用于Controller類或者方法上,將方法返回值直接響應(yīng),若返回值類型是實(shí)體對(duì)象或者集合,將轉(zhuǎn)為json格式相應(yīng)。
為了有統(tǒng)一的返回方式,定義統(tǒng)一響應(yīng)結(jié)果Result
。
package com.example.helloworld.controller; /** * code response狀態(tài)碼 * obj 返回給前端的數(shù)據(jù) * message 附加信息,說明具體情況 */ public class Result { public int code; public String message; public Object data; public Result(int code, String message, Object data) { this.code = code; this.message = message; this.data = data; } public static Result success(Object data) { return new Result(200, "success", data); } public static Result success() { return new Result(200, "success", null); } public static Result error(String message) { return new Result(404, message, null); } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot在接收參數(shù)的七種方式詳解
- SpringBoot在Controller層接收參數(shù)的n種姿勢(shì)(超詳細(xì))
- SpringBoot開發(fā)詳解之Controller接收參數(shù)及參數(shù)校驗(yàn)
- SpringBoot實(shí)現(xiàn)前后端、json數(shù)據(jù)交互以及Controller接收參數(shù)的幾種常用方式
- Springboot?接口需要接收參數(shù)類型是數(shù)組問題
- 詳解SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot中Get請(qǐng)求和POST請(qǐng)求接收參數(shù)示例詳解
相關(guān)文章
socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析
這篇文章主要為大家介紹了socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Java中的static靜態(tài)變量、靜態(tài)方法超詳細(xì)講解
Java中的static關(guān)鍵字用于表示靜態(tài)變量和靜態(tài)方法,靜態(tài)變量是類的成員變量,它們屬于類本身,而不是類的實(shí)例,這篇文章主要給大家介紹了關(guān)于Java中static靜態(tài)變量、靜態(tài)方法詳細(xì)講解的相關(guān)資料,需要的朋友可以參考下2024-06-06SpringBoot啟動(dòng)參數(shù)的實(shí)現(xiàn)
SpringBoot通過jar文件方式啟動(dòng),配置可以通過啟動(dòng)參數(shù)進(jìn)行覆蓋,本文就來介紹一下SpringBoot啟動(dòng)參數(shù)的實(shí)現(xiàn),感興趣的可以了解一下2025-01-01淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn)
這篇文章主要介紹了淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06ActiveMQ基于zookeeper的主從(levelDB Master/Slave)搭建
這篇文章主要介紹了ActiveMQ基于zookeeper的主從levelDB Master/Slave搭建,以及Spring-boot下的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08SpringBoot Mybatis動(dòng)態(tài)數(shù)據(jù)源切換方案實(shí)現(xiàn)過程
這篇文章主要介紹了SpringBoot+Mybatis實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換方案過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04