springboot優(yōu)雅獲取前端參數(shù)的方法詳解
寫(xiě)在前面
對(duì)于初學(xué)者來(lái)說(shuō),困難的不是理論知識(shí),而是如何在程序中具體實(shí)現(xiàn)。
現(xiàn)在的項(xiàng)目基本上都是前后端分離的項(xiàng)目,如何打通前后端,接收前端傳過(guò)來(lái)的參數(shù)呢?
廢話不多說(shuō),這篇文章就來(lái)說(shuō)一說(shuō)接收前端參數(shù)的具體操作
一、獲取路徑中的值
1.1 核心代碼
@GetMapping("/getArticle/{id}")
public Article getArticle(@PathVariable("id") Long id){
System.out.println("獲取到路徑中的值為:"+id);
return parmsService.findArticleById(id);
}1.2 測(cè)試結(jié)果
在訪問(wèn)“http://localhost:8080/article/1” 時(shí),程序會(huì)自動(dòng)將URL中的模板變量{id} 綁定到通過(guò)@PathVariable注解的同名參數(shù)上,所以程序中可以獲取到id=1


二、獲取路徑中的參數(shù)
2.1 核心代碼
@RequestMapping(value = "/addUser/",method = RequestMethod.POST)
public String addUser(String name,String sex,int age){
System.out.println("獲取到參數(shù)中的值為:"+name+","+sex+","+age);
return "添加文章成功";
}2.2 測(cè)試結(jié)果
這里的參數(shù)和上面的不一樣,這里的參數(shù)是通過(guò)“=”隔開(kāi)的,多個(gè)參數(shù)使用&分割。 例如測(cè)試?yán)又械?ldquo;http://localhost:8080/?name=小凡&sex=男&age=18”


三、通過(guò)Bean接收對(duì)象參數(shù)
3.1 核心代碼
//①User
@Data
public class User {
private Integer id;
private String name;
private String sex;
private Integer age;
}
//接收參數(shù)方法
@PostMapping("/addnewUser/")
public String addUser(User user){
System.out.println(user);
return "添加用戶(hù)成功";
}3.2 測(cè)試結(jié)果
這里直接將前端傳過(guò)來(lái)的參數(shù)映射到User 對(duì)象上


四、HttpServletRequest接收參數(shù)
4.1 核心代碼
@PostMapping("/addBook/")
public String addBook(HttpServletRequest request){
String bookName = request.getParameter("bookName");
String author = request.getParameter("author");
System.out.println("獲取到參數(shù)中的值為:"+bookName+","+author);
return "添加書(shū)籍成功";
}4.2 測(cè)試結(jié)果


五、用@RequestParam接收參數(shù)
5.1 核心代碼
@GetMapping("/getParams")
public String getParms(@RequestParam("param1") String param1,@RequestParam("param2") String param2){
System.out.println("獲取到參數(shù)中的值為:"+param1+","+param2);
return "Param1: " + param1 + ", parm2: " + param2;
}5.2 測(cè)試結(jié)果


六、 用@RequestBody 接收json數(shù)據(jù)
6.1 核心代碼
//① 定義User實(shí)體對(duì)象
@Data
public class User {
private Integer id;
private String name;
private String sex;
private Integer age;
}
//② 接收參數(shù)
@PostMapping("/addUsers")
public List<User> addUsers(@RequestBody List<User> users){
System.out.println(""+users);
return users;
}6.2 測(cè)試結(jié)果


七、接收文件 MultipartFile
7.1 核心代碼
@PostMapping("/singleFileUpload")
public String singleFileUpload(@RequestParam("file") MultipartFile file){
//文件存儲(chǔ)路徑
final String BASE_PATH = "E:\\xiezhrspace\\parm-demo\\";
if(file.isEmpty()){
return "文件為空";
}
//獲取文件名
String fileName = file.getOriginalFilename();
try {
//新建一個(gè)文件路徑
File dest = new File(BASE_PATH + fileName);
//判斷路徑是否存在,如果不存在就創(chuàng)建一個(gè)
if(!dest.getParentFile().exists()){
dest.getParentFile().mkdirs();
}
//將上傳文件保存到一個(gè)目標(biāo)文件當(dāng)中
file.transferTo(dest);
} catch (IOException e) {
e.printStackTrace();
}
return "上傳成功";
}7.2 測(cè)試結(jié)果


到此這篇關(guān)于springboot優(yōu)雅獲取前端參數(shù)的方法詳解的文章就介紹到這了,更多相關(guān)springboot獲取前端參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決springboot讀取application.properties中文亂碼問(wèn)題
初用properties,讀取java properties文件的時(shí)候如果value是中文,會(huì)出現(xiàn)亂碼的問(wèn)題,所以本文小編將給大家介紹如何解決springboot讀取application.properties中文亂碼問(wèn)題,需要的朋友可以參考下2023-11-11
Mybatis開(kāi)發(fā)環(huán)境搭建實(shí)現(xiàn)數(shù)據(jù)的增刪改查功能
這篇文章主要介紹了 Mybatis開(kāi)發(fā)環(huán)境搭建實(shí)現(xiàn)數(shù)據(jù)的增刪改查功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
Jpa 實(shí)現(xiàn)自動(dòng)更新表中的創(chuàng)建日期和修改時(shí)間
這篇文章主要介紹了Jpa 實(shí)現(xiàn)自動(dòng)更新表中的創(chuàng)建日期和修改時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
springboot加載外部jar的項(xiàng)目實(shí)踐
本文主要介紹了springboot加載外部jar的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-02-02
SpringSecurity Oauth2訪問(wèn)令牌續(xù)期問(wèn)題
這篇文章主要介紹了SpringSecurity Oauth2訪問(wèn)令牌續(xù)期問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
MyBatis動(dòng)態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽的使用
MyBatis中動(dòng)態(tài)語(yǔ)句choose-when-otherwise 類(lèi)似于Java中的switch-case-default語(yǔ)句,本文就來(lái)介紹一下MyBatis動(dòng)態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽的使用,感興趣的可以了解一下2023-09-09
日志模塊自定義@SkipLogAspect注解跳過(guò)切面的操作方法
文章介紹了一個(gè)自定義注解@SkipLogAspect,用于在日志模塊中跳過(guò)特定方法的日志切面,這個(gè)注解可以用于需要避免大對(duì)象轉(zhuǎn)換為JSON時(shí)導(dǎo)致的OOM問(wèn)題,文章還提供了注解的實(shí)現(xiàn)代碼以及一個(gè)測(cè)試示例,展示了如何在控制器中使用該注解來(lái)跳過(guò)日志切面,感興趣的朋友一起看看吧2025-02-02

