java.lang.IllegalStateException: Ambiguous handler methods mapped for ‘/emp/lisi‘: {public com.weiji
程序员文章站
2022-01-21 19:02:44
...
springboot 客户端访问controller时访问路径问题
@GetMapping("/emp/{id}")
public Employee getEmp(@PathVariable("id") Integer id){
Employee emp = service.getEmpById(id);
return emp;
}
方法一:根据id查询员工
@GetMapping("emp/{name}")
public Employee getEmpByName(@PathVariable("name") String name){
return service.getEmpByName(name);
}
方法二:根据name查询员工
错误原因:
可以看到是类型转换异常,主要是因为两个方法访问路径只有参数不同,在controller方法接收请求时没办法区分,不知道用哪个方法处理,这时当String类型注入Integer类型时就会发生类型转换异常,所以可以多加一层访问路径区分请求
@GetMapping("emp/lastName/{name}")
public Employee getEmpByName(@PathVariable("name") String name){
return service.getEmpByName(name);
}