Bean 验证 @Positive 指令不适用于 Integer @PathVariable

Bean validation @Positive directive is not working on Integer @PathVariable

我正在尝试使用@Positive bean 验证注释来验证控制器方法(REST Api 资源)整数参数,但没有任何反应。

Java:
Java 版本“11.0.2” 2019-01-15 LTS
Java(TM) SE 运行时环境 18.9(内部版本 11.0.2+9-LTS)
Java HotSpot(TM) 64 位服务器 VM 18.9(构建 11.0.2+9-LTS,混合模式)

Spring 开机:
2.1.6.RELEASE

代码:

@RestController
@RequestMapping("/test")
public class TestController {

    @GetMapping("/{id}")
    public ResponseEntity<?> lista(@Valid @NotNull @Positive @PathVariable("id") Integer id) {
        String msg = "";
        if (id > 0) {
            msg = "id > 0";
        } else {
            msg = "id <= 0";
        }
        System.out.println(msg);
        return ResponseEntity.ok(msg);
    }
}


@Positive 没有做它应该做的事情。

测试:

要求:
获取 localhost:8080/test/0
回应:
200 行 "id <= 0"
预期:
400 错误请求

要求:
获取 localhost:8080/test/-1
回应:
200 行 "id <= 0"
Expected:400 请求错误


当我尝试 GET localhost:8080/test/teste 时,我收到了预期的 400 错误请求。

遇到了同样的问题,申请解决了

@Validated

在我的控制器上。那应该给你的不是 HTTP 400,而是 HTTP 500。