2017-10-13 70 views
1

我試圖通過設置了一個param在這裏這種方法缺少URI模板變量「usuarioEntidade」長期

@RequestMapping(method = RequestMethod.GET, value = "/distrito/{idEntidade}", produces = MediaType.APPLICATION_JSON_VALUE) 
    public ResponseEntity<Collection<Distritos>> buscarTodosDistritos(@PathVariable Long usuarioEntidade) throws ServletException { 

     Collection<Distritos> distritosBuscados = distritosService.buscarFiltro(usuarioEntidade);//parametro, que é o id_entidade, para passar na query de busca distritos 
      return new ResponseEntity<>(distritosBuscados, HttpStatus.OK); 
    } 

,我得到這個錯誤

Missing URI template variable 'usuarioEntidade' for method parameter of type Long 

我打電話這種類型的方法參數在我的前端的要求就在這裏

idEntidade = Number(localStorage.getItem("idEntidade")); 



$http({ 
     method : 'GET', 
     url : '/user/distrito/' +idEntidade   
    }).then(function(response) { 
     $scope.distritos = response.data; 

    }, function(response) { 
     console.log(response.data); 
     console.log(response.status); 
    }); 
}; 

然後得到一個錯誤..

Missing URI template variable 'usuarioEntidade' for method parameter of type Long 

回答

1

你的問題是路徑變量在你的休息請求中的名稱不匹配傳遞給你的java方法的變量的名字。

你有兩個選擇:

@RequestMapping(method = RequestMethod.GET, value = "/distrito/{idEntidade}", produces = MediaType.APPLICATION_JSON_VALUE) 
public ResponseEntity<Collection<Distritos>> buscarTodosDistritos(@PathVariable("idEntidade") Long usuarioEntidade) 

或者:

@RequestMapping(method = RequestMethod.GET, value = "/distrito/{usuarioEntidade}", produces = MediaType.APPLICATION_JSON_VALUE) 
public ResponseEntity<Collection<Distritos>> buscarTodosDistritos(@PathVariable Long usuarioEntidade) 
0

你必須在buscarTodosDistritos(MAKE改變)方法如下

@PathVariable(value="idEntidade") Long usuarioEntidade <--- add value in path variable 

@PathVariable Long idEntidade <--- or change variable name to map same as the one in the url