SpringBoot Controller接收參數(shù)的幾種常用方式
SpringBoot Controller接收參數(shù)的常用方式
在Controller中加入@RestController,效果等于@Controller + @ResponseBody。
1 請(qǐng)求路徑參數(shù)
直接把表單里面的參數(shù)寫(xiě)進(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ù)
通過(guò)建立一個(gè)bean來(lái)獲取參數(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í)別有問(wèn)題……
4 Json Body參數(shù)
通常用于Post請(qǐng)求。
![[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-UC3GsHzo-1685868352014)(【SpringBoot】SpringBoot-Controller接收參數(shù)的常用方式/image-20230604162017983.png)]](http://img.jbzj.com/file_images/article/202307/202307190858421.png)
使用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 附加信息,說(shuō)明具體情況
*/
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開(kāi)發(fā)詳解之Controller接收參數(shù)及參數(shù)校驗(yàn)
- SpringBoot實(shí)現(xiàn)前后端、json數(shù)據(jù)交互以及Controller接收參數(shù)的幾種常用方式
- Springboot?接口需要接收參數(shù)類型是數(shù)組問(wèn)題
- 詳解SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot中Get請(qǐng)求和POST請(qǐng)求接收參數(shù)示例詳解
相關(guān)文章
springboot+logback的多環(huán)境配置全過(guò)程
文章介紹了Spring Boot多環(huán)境配置的兩種方式:推薦使用bootstrap.yml+環(huán)境專用文件(如bootstrap-dev.yml)區(qū)分配置,而舊版(2.6.x以下)可采用bootstrap.yml+application-xxx.yml,同時(shí)說(shuō)明Logback需將配置文件改為logback-spring.xml以支持springProperty多環(huán)境日志設(shè)置2025-09-09
Java使用FastExcel高效讀取和寫(xiě)入Excel
FastExcel 是一個(gè) Java 庫(kù),旨在高效地讀取和寫(xiě)入 Excel 文件,它最初是 EasyExcel 的分叉版本,旨在提供增強(qiáng)的性能、持續(xù)維護(hù)和新功能,同時(shí)保持與原始 EasyExcel API 的兼容性,本文給大家介紹了Java如何使用FastExcel高效讀取和寫(xiě)入Excel,需要的朋友可以參考下2025-11-11
java數(shù)據(jù)結(jié)構(gòu)之搜索二叉樹(shù)
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之搜索二叉樹(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
No ‘Access-Control-Allow-Origin‘ header is&nb
這篇文章主要介紹了No ‘Access-Control-Allow-Origin‘ header is present跨域及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
基于spring+hibernate+JQuery開(kāi)發(fā)之電子相冊(cè)(附源碼下載)
本篇文章介紹了,基于spring+hibernate+JQuery開(kāi)發(fā)之電子相冊(cè)(附源碼下載)。需要的朋友參考下2013-05-05
Java深入了解數(shù)據(jù)結(jié)構(gòu)之哈希表篇
哈希表是一種根據(jù)關(guān)鍵碼去尋找值的數(shù)據(jù)映射結(jié)構(gòu),該結(jié)構(gòu)通過(guò)把關(guān)鍵碼映射的位置去尋找存放值的地方,說(shuō)起來(lái)可能感覺(jué)有點(diǎn)復(fù)雜,我想我舉個(gè)例子你就會(huì)明白了,最典型的的例子就是字典2022-01-01
Java實(shí)現(xiàn)答答租車(chē)系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)答答租車(chē)系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
關(guān)于Process的waitFor死鎖問(wèn)題及解決方案
這篇文章主要介紹了關(guān)于Process的waitFor死鎖問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

