java - @GetMapping 和 @GetMapping ("/{id}")始终返回 @GetMapping ("/{id}")

标签 java spring spring-boot

我有两个方法@GetMapping和@GetMapping("/{id}")

@RestController("/user"){
public class UserRestController {

@GetMapping
public ResponseData get() {
      ...........
    return responseData;
}

@GetMapping("/{id}")
public ResponseData getUser(@PathParam("id") Long id) {
    ResponseData responseData = new ResponseData();
      ...........
    return responseData;
}

当我点击 URL http://localhost:8080/user 我采取了 @GetMapping("/{id}") 方法 因为它需要 id null,我该如何解决这个问题?

最佳答案

您将 PathParamPathVariable 混淆了。

在您的示例中,我认为您需要的是 PathVariable 。此外,您可以删除 name 字段,因为参数的名称相同:id

这是更新后的代码:

@GetMapping("/{id}")
public ResponseData getUser(@PathVariable Long id) {
   ...
}

此外,您需要在同一 Controller 下定义用户映射,即 RequestMapping注释:

@RestController
@RequestMapping("/user")
public class UserRestController {
    ...
}

关于java - @GetMapping 和 @GetMapping ("/{id}")始终返回 @GetMapping ("/{id}"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60396228/

相关文章:

java - Arquillian Cube 的容器对象中是否有主机名属性?

java - Hibernate池似乎释放了连接

java - 在http请求连接器中传递动态查询参数和路径参数

spring - 如何在 Spring Boot 中设置惰性初始化的默认行为?

java - Spring Boot @ControllerAdvice 异常处理程序未触发

java - 我有一个程序应该将一些数据写入文件,但它没有,我不知道为什么

java - libgdx 地面不起作用

java - JButton - 单击动画

java - Spring MVC @Controller 和配置文件

spring-boot - zuul.ignoredHeaders 和 zuul.sensitiveHeaders 有什么区别