2017-10-13 118 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