springboot如何優雅的獲取前端引數

xiezhr發表於2024-03-17

寫在前面

對於初學者來說,困難的不是理論知識,而是如何在程式中具體實現。

現在的專案基本上都是前後端分離的專案,如何打通前後端,接收前端傳過來的引數呢?

廢話不多說,這篇文章就來說一說接收前端引數的具體操作

一、獲取路徑中的值

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”

postman測試結果

idea列印值

三、透過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 物件上

postman測試結果

idea列印結果

四、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 測試結果

postman測試結果

idea測試結果

五、用@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 測試結果

postman測試結果

idea測試結果

六、 用@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 測試結果

postman測試結果

idea列印結果

七、接收檔案 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 測試結果

postman測試結果

檔案上傳成功

以上就是本期全部內容,希望對您有所幫助,我們下期再見(●'◡'●)

相關文章