SpringMVC中使用@PathVariable綁定路由中的數組

問題描述

在開發批量刪除功能時,每每都是多條數據,因此前臺須要傳一個數組給後臺,可是怎麼在URL中綁定一個數組,同時在後臺用@PathVariable來綁定呢?數組

原來的作法

後臺:服務器

clipboard.png

前臺:app

clipboard.png

以上是以前項目的截圖,直接拿過來啦!!!😁😁😁this

後臺以 @RequestBody接收一個數組,可是前臺須要發送一個 request請求, 傳入請求方法的類型 delete, 而且傳入一個 body, 但在寫華軟項目時, 張喜碩組長看到,說這樣寫並很差,要在 url中綁定一個數組,在前臺以逗號隔開。

delete方法是不建議傳輸實體的主體url

delete請求用於請求服務器刪除所請求URI(統一資源標識符,Uniform Resource Identifier)所標識的資源。DELETE請求後指定資源會被刪除spa

該如何解決呢?如何在url綁定數組呢?code

解決方法

後臺:orm

@DeleteMapping("{clusterNodeId}/hosts/{hostsId}")
    public void deleteClusterNodeByHostList(@PathVariable Long clusterNodeId, @PathVariable Long[] hostsId) {
        clusterNodeService.deleteClusterNodeByHostList(clusterNodeId, hostsId);
    }
url 接收一個數組,使用 @PathVariable綁定這個數組

前臺:blog

public deleteClusterNodeByHostList(
        clusterNodeId: number,
        hostsId: any[]): Observable<ClusterNode> {
        return this.http.delete(`${this.baseUrl}/${clusterNodeId.toString()}/hosts/${hostsId.join(',')}`);
    }
使用 join 對數組進行處理,以逗號的形式隔開,傳給後臺

url:ip

clipboard.png

後臺接收:

clipboard.png

相關文章
相關標籤/搜索