首页 > 解决方案 > @GetMapping 和 @GetMapping("/{id}") 总是返回 @GetMapping("/{id}")

问题描述

我有两种方法 @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}") 方法,因为它需要idnull,我该如何解决这个问题?

标签: javaspringspring-boot

解决方案


您正在PathParamPathVariable.

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

这是更新的代码:

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

此外,您正在寻找user在同一控制器下定义映射的是RequestMapping注释:

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

推荐阅读