深入了解deletemapping傳參

一、參數的意義

deletemapping作為Java中DeleteMapping註解的一種,與RequestMapping註解類似,可以處理HTTP DELETE請求,但主要用於刪除資源、數據。deletemapping的參數支持以下幾種形式:

@DeleteMapping("/users/{userId}")

上面的參數表明,在/users/路徑下接收DELETE請求並且需要傳入“userId”參數。其中{}括起來的參數是一個佔位符,Spring會自動將佔位符中的內容,作為@PathVariable註解的value屬性的值。可以用來創建RESTful風格的API,使用URL模板路徑和佔位符來處理請求。

二、多參數的使用

在服務端的業務操作中,往往需要多個參數進行操作。那麼我們將多個參數傳遞給控制層,該如何處理呢?deletemapping傳遞多個參數的方式有兩種:

1.使用@RequestParam

@RequestParam表示業務方法參數位於HTTP請求URI字符串中,但是並不是通過佔位符執行的,而是作為請求參數通過查詢字符串進行傳遞。@RequestParam註解的value屬性即表示請求參數名稱,Spring MVC框架通過該屬性的指定值進行請求參數獲取,如果value屬性值為空或者省略,Spring MVC默認採用的是形參的名稱。

@DeleteMapping("/example")
public String deletemapping(@RequestParam("id") Long id,
                            @RequestParam("name") String name)

如上所示,我們在參數前面加上@RequestParam註解,後面的括號中的值則是請求參數名稱。如果請求參數名稱與形參名相同也可以直接寫成@RequestParam註解。

2.使用@PathVariable

@PathVariable用於將URI模板中的變量映射到方法參數上。

@DeleteMapping("/example/{id}/{name}")
public String deletemapping(@PathVariable Long id, @PathVariable String name)

如上例,我們只需要在變量前面加上@PathVariable註解,Spring會自動將佔位符中的內容,作為@PathVariable註解的value屬性的值,然後將該值與形參進行綁定。

三、參數的傳遞方式

一般來說,提交數據有兩種方式,post和get。在刪除操作中,因為涉及到資源的刪除,而刪除操作必須使用HTTP協議中的DELETE方法才能達到預期的效果。因此,deletemapping註解只支持DELETE方法。此時,有必要提到一個問題:在使用delete方法的時候,參數的傳遞方式該如何確定?

1.使用請求參數

請求參數是一般情況下最常用的數據傳遞方式,它是通過HTTP請求的查詢字符串中傳遞的。在使用DELETE方法的時候,同樣支持在查詢字符串中傳遞請求參數。在Spring MVC框架中,使用@RequestParam註解的方式即可接收查詢字符串中的參數。

2.使用請求體

在HTTP協議中,請求體可用來作為數據的載體,它可以傳遞各種格式的數據,包括JSON格式和XML格式等。在Spring MVC框架中,如果需要接收請求體中的參數,可以使用@RequestBody註解。

@DeleteMapping("/example")
public String deletemapping(@RequestBody User user) {
    userService.deleteUserById(user.getId());
    return "success";
}

如上示例,我們可以使用@RequestBody註解將User對象以JSON格式提交到服務端,Spring MVC將會自動將請求體中的內容轉換成Java對象,並將其綁定到方法參數上。

四、動態URL的處理

在RESTful風格的API開發中,請求URL經常需要包含動態的Path變量,如下所示:

@DeleteMapping("/example/{id}")
public String delete(@PathVariable("id") String id) {
    userService.delete(id);
    return "success";
}

如上所示,我們可以在deletemapping註解的URL路徑中定義動態的Path變量,路徑形式為“/{variable}”,其中variable即為動態變量。

五、完整示例代碼

下面是一個使用deletmapping進行參數傳參的完整示例代碼,供大家參考:

@RestController
@RequestMapping("/example")public class DeleteMappingController {

    @DeleteMapping("/user/{id}")
    public String deleteMappingPathVariable(@PathVariable Long id) {
        //業務實現

        return "刪除成功!";
    }

    @DeleteMapping(value = "/user")
    public String deleteMappingRequestParam(@RequestParam(value="id") Long id) {
        //業務實現

        return "刪除成功!";
    }

}

原創文章,作者:BKJRJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/370870.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BKJRJ的頭像BKJRJ
上一篇 2025-04-23 00:48
下一篇 2025-04-23 00:48

相關推薦

  • 深入解析Vue3 defineExpose

    Vue 3在開發過程中引入了新的API `defineExpose`。在以前的版本中,我們經常使用 `$attrs` 和` $listeners` 實現父組件與子組件之間的通信,但…

    編程 2025-04-25
  • 深入理解byte轉int

    一、字節與比特 在討論byte轉int之前,我們需要了解字節和比特的概念。字節是計算機存儲單位的一種,通常表示8個比特(bit),即1字節=8比特。比特是計算機中最小的數據單位,是…

    編程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什麼是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一個內置小部件,它可以監測數據流(Stream)中數據的變…

    編程 2025-04-25
  • 深入探討OpenCV版本

    OpenCV是一個用於計算機視覺應用程序的開源庫。它是由英特爾公司創建的,現已由Willow Garage管理。OpenCV旨在提供一個易於使用的計算機視覺和機器學習基礎架構,以實…

    編程 2025-04-25
  • 深入了解scala-maven-plugin

    一、簡介 Scala-maven-plugin 是一個創造和管理 Scala 項目的maven插件,它可以自動生成基本項目結構、依賴配置、Scala文件等。使用它可以使我們專註於代…

    編程 2025-04-25
  • 深入了解LaTeX的腳註(latexfootnote)

    一、基本介紹 LaTeX作為一種排版軟件,具有各種各樣的功能,其中腳註(footnote)是一個十分重要的功能之一。在LaTeX中,腳註是用命令latexfootnote來實現的。…

    編程 2025-04-25
  • 深入剖析MapStruct未生成實現類問題

    一、MapStruct簡介 MapStruct是一個Java bean映射器,它通過註解和代碼生成來在Java bean之間轉換成本類代碼,實現類型安全,簡單而不失靈活。 作為一個…

    編程 2025-04-25
  • 深入理解Python字符串r

    一、r字符串的基本概念 r字符串(raw字符串)是指在Python中,以字母r為前綴的字符串。r字符串中的反斜杠(\)不會被轉義,而是被當作普通字符處理,這使得r字符串可以非常方便…

    編程 2025-04-25
  • 深入探討馮諾依曼原理

    一、原理概述 馮諾依曼原理,又稱“存儲程序控制原理”,是指計算機的程序和數據都存儲在同一個存儲器中,並且通過一個統一的總線來傳輸數據。這個原理的提出,是計算機科學發展中的重大進展,…

    編程 2025-04-25
  • 深入了解Python包

    一、包的概念 Python中一個程序就是一個模塊,而一個模塊可以引入另一個模塊,這樣就形成了包。包就是有多個模塊組成的一個大模塊,也可以看做是一個文件夾。包可以有效地組織代碼和數據…

    編程 2025-04-25

發表回復

登錄後才能評論