代码之家  ›  专栏  ›  技术社区  ›  dEs12ZER

将Angular5的请求发送到弹簧防尘套

  •  2
  • dEs12ZER  · 技术社区  · 7 年前

    如您所知,put请求如下所示:

    put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response>
    

    从角度上看,我的情况是这样的:

    updateIntervention(id:number,idDev:number){
        if(this.authService.getToken()==null) {
          this.authService.loadToken();
        }
        return this.http.put(this.host+"/updateIntervention/"+id,idDev,{headers:new HttpHeaders({'Authorization':this.authService.getToken()})});
      }
    

    @RequestMapping(value="/updateIntervention/{id}",method = RequestMethod.PUT)
     public Intervention update(@PathVariable Long id , @RequestBody B obj){
    
     ... 
    }
    

    所以这里的obj是类B的一个对象,它有一个Long类型的attribte,它将返回angular5发送的PUT请求的主体。

    我的问题是我一直在spring数据中创建这些不同的类(因为有时我只在body中发送一个属性,这就是为什么我创建一个新的类来表示它),这样我就可以通过angular发送body,即使它只包含一个属性,如本例中的idDev。

    有没有更好的方法可以避免在spring数据中创建新类,这样我就无法在body中通过前端发送idDev?

    如果我只是举个例子:

    public Intervention update(@PathVariable Long id , @RequestBody long idDev){
    

    我得到反序列化等错误。。

    有什么想法,还是不可能?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mạnh Quyết Nguyễn    7 年前

    把你的情人 form-data @RequestParam 要将其放入控制器:

    public Intervention update(@PathVariable Long id , @RequestParam long idDev){