怎么在SpringMVC中使用@PathVariable对路由中的数组进行绑定?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
后台:
![](/UpLoads/images/DATA/Prolanguage/20230107004756538110.png)
前台:
![](/UpLoads/images/DATA/Prolanguage/20230107004756780065.png)
后台以@RequestBody接收一个数组,但是前台需要发送一个request请求, 传入请求方法的类型delete, 并且传入一个body, 但在写华软项目时, 张喜硕组长看到,说这样写并不好,要在url中绑定一个数组,在前台以逗号隔开。delete方法是不建议传输实体的主体
delete请求用于请求服务器删除所请求URI(统一资源标识符,Uniform Resource Identifier)所标识的资源。DELETE请求后指定资源会被删除
该如何解决呢?如何在url
绑定数组呢?
解决方法
后台:
@DeleteMapping("{clusterNodeId}/hosts/{hostsId}")
public void deleteClusterNodeByHostList(@PathVariable Long clusterNodeId, @PathVariable Long[] hostsId) {
clusterNodeService.deleteClusterNodeByHostList(clusterNodeId, hostsId);
}
由url
接收一个数组,使用@PathVariable
绑定这个数组
前台:
public deleteClusterNodeByHostList(
clusterNodeId: number,
hostsId: any[]): Observable<ClusterNode> {
return this.http.delete(`${this.baseUrl}/${clusterNodeId.toString()}/hosts/${hostsId.join(',')}`);
}
使用join 对数组进行处理,以逗号的形式隔开,传给后台
url:
![](/UpLoads/images/DATA/Prolanguage/20230107004756951968.png)
后台接收:
![](/UpLoads/images/DATA/Prolanguage/20230107004756142485.png)
看完上述内容,你们掌握怎么在SpringMVC中使用@PathVariable对路由中的数组进行绑定的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注天达云行业资讯频道,感谢各位的阅读!