欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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);
    }