@GetMapping和@GetMapping(“ / {id}”)始终返回@GetMapping(“ / {id}”)

时间:2020-02-25 13:52:43

标签: 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为空,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您正在将PathParamPathVariable混在一起。

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

这是更新的代码:

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

此外,您想要在同一控制器下定义user映射的是RequestMapping批注:

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

答案 1 :(得分:-1)

你可以用这个方法

` @GetMapping("/")

public ResponseData getUser(@RequestParam 长 ID) { ResponseData responseData = new ResponseData();

.......

返回响应数据; }`