【发布时间】:2018-07-04 19:54:14
【问题描述】:
我想根据 ID 或电子邮件检索 user 的信息。下面是我写的控制器类:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserDao userDao;
@GetMapping(value = "/{id:\\d+}")
public User findOneById(@PathVariable("id") final Integer userId) {
return userDao.findById(userId).get();
}
@GetMapping(value = "/{email}")
public User findOneByEmail(@PathVariable("email") final String email) {
return userDao.findByEmail(email).get();
}
代码不工作并给出错误
java.lang.IllegalStateException:映射到 HTTP 路径“http://localhost:8080/users/12223”的不明确处理程序方法:{public com.example. persistence.model.User com.example.rest.controller.UserController.findOneById(java.lang.Integer), public com.example.persistence.model.User com.example.rest.controller.UserController.findOneByEmail(java.lang.字符串)}。
我认为 Regex 可以解决这个问题,但不幸的是它没有。
我理解错误的原因,但是处理这种要求的方法是什么?
【问题讨论】:
-
使其明确:指定一个应该与 findByEmail 匹配的正则表达式。
标签: spring spring-mvc spring-boot spring-data-rest