Java 缺少URI模板变量';通常情况下';对于Long类型的方法参数
我尝试在此方法中传递参数Java 缺少URI模板变量';通常情况下';对于Long类型的方法参数,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我尝试在此方法中传递参数 @RequestMapping(method = RequestMethod.GET, value = "/distrito/{idEntidade}", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Collection<Distritos>> buscarTodosDistritos(@PathVariable Long usuarioEntida
@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);
}
我在我的前端呼叫这个请求,就在这里
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
您必须在buscarTodosDistritos()方法中进行如下更改
@PathVariable(value="idEntidade") Long usuarioEntidade <--- add value in path variable
@PathVariable(value=“idEntidade”)Long usuarioEntidade您的问题是rest请求中的path变量名称与传递给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/{idEntidade}”,products=MediaType.APPLICATION\u JSON\u value)
公共响应总线cartodosDistritos(@PathVariable(“idEntidade”)Long usuarioEntidade)
或:
@RequestMapping(method=RequestMethod.GET,value=“/distrito/{usuarioEntidade}”,products=MediaType.APPLICATION\u JSON\u value)
公共响应总线CartoDosDistritos(@PathVariable Long usuarioEntidade)
粗体参数需要有相同的名称
@RequestMapping(method=RequestMethod.GET,value=“/distrito/{idEntidade}”,products=MediaType.APPLICATION\u JSON\u value)
public ResponseEntity>BusCartosDistritos(@PathVariable Long通常为EntityDade)引发ServletException
正确答案
@RequestMapping(method = RequestMethod.GET, value = "/distrito/{idEntidade}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Collection<Distritos>> buscarTodosDistritos(@PathVariable Long idEntidade) throws ServletException
@RequestMapping(method=RequestMethod.GET,value=“/distrito/{idEntidade}”,products=MediaType.APPLICATION\u JSON\u value)
公共响应buscarTodosDistritos(@PathVariable Long idEntidade)引发ServletException
@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)
@RequestMapping(method = RequestMethod.GET, value = "/distrito/{idEntidade}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Collection<Distritos>> buscarTodosDistritos(@PathVariable Long idEntidade) throws ServletException