寫在前面
對於初學者來說,困難的不是理論知識,而是如何在程式中具體實現。
現在的專案基本上都是前後端分離的專案,如何打通前後端,接收前端傳過來的引數呢?
廢話不多說,這篇文章就來說一說接收前端引數的具體操作
一、獲取路徑中的值
1.1 核心程式碼
@GetMapping("/getArticle/{id}")
public Article getArticle(@PathVariable("id") Long id){
System.out.println("獲取到路徑中的值為:"+id);
return parmsService.findArticleById(id);
}
1.2 測試結果
在訪問“http://localhost:8080/article/1” 時,程式會自動將URL中的模板變數{id} 繫結到透過@PathVariable
註解的同名引數上,所以程式中可以獲取到id=1
二、獲取路徑中的引數
2.1 核心程式碼
@RequestMapping(value = "/addUser/",method = RequestMethod.POST)
public String addUser(String name,String sex,int age){
System.out.println("獲取到引數中的值為:"+name+","+sex+","+age);
return "新增文章成功";
}
2.2 測試結果
這裡的引數和上面的不一樣,這裡的引數是透過“=”隔開的,多個引數使用&分割。 例如測試例子中的“http://localhost:8080/?name=小凡&sex=男&age=18”
三、透過Bean接收物件引數
3.1 核心程式碼
//①User
@Data
public class User {
private Integer id;
private String name;
private String sex;
private Integer age;
}
//接收引數方法
@PostMapping("/addnewUser/")
public String addUser(User user){
System.out.println(user);
return "新增使用者成功";
}
3.2 測試結果
這裡直接將前端傳過來的引數對映到User
物件上
四、HttpServletRequest接收引數
4.1 核心程式碼
@PostMapping("/addBook/")
public String addBook(HttpServletRequest request){
String bookName = request.getParameter("bookName");
String author = request.getParameter("author");
System.out.println("獲取到引數中的值為:"+bookName+","+author);
return "新增書籍成功";
}
4.2 測試結果
五、用@RequestParam接收引數
5.1 核心程式碼
@GetMapping("/getParams")
public String getParms(@RequestParam("param1") String param1,@RequestParam("param2") String param2){
System.out.println("獲取到引數中的值為:"+param1+","+param2);
return "Param1: " + param1 + ", parm2: " + param2;
}
5.2 測試結果
六、 用@RequestBody 接收json資料
6.1 核心程式碼
//① 定義User實體物件
@Data
public class User {
private Integer id;
private String name;
private String sex;
private Integer age;
}
//② 接收引數
@PostMapping("/addUsers")
public List<User> addUsers(@RequestBody List<User> users){
System.out.println(""+users);
return users;
}
6.2 測試結果
七、接收檔案 MultipartFile
7.1 核心程式碼
@PostMapping("/singleFileUpload")
public String singleFileUpload(@RequestParam("file") MultipartFile file){
//檔案儲存路徑
final String BASE_PATH = "E:\\xiezhrspace\\parm-demo\\";
if(file.isEmpty()){
return "檔案為空";
}
//獲取檔名
String fileName = file.getOriginalFilename();
try {
//新建一個檔案路徑
File dest = new File(BASE_PATH + fileName);
//判斷路徑是否存在,如果不存在就建立一個
if(!dest.getParentFile().exists()){
dest.getParentFile().mkdirs();
}
//將上傳檔案儲存到一個目標檔案當中
file.transferTo(dest);
} catch (IOException e) {
e.printStackTrace();
}
return "上傳成功";
}
7.2 測試結果
以上就是本期全部內容,希望對您有所幫助,我們下期再見(●'◡'●)