我正在尝试使用@Positive bean验证注释来验证控制器方法(REST Api资源)Integer参数,但是什么也没发生。
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,混合模式)
春季靴:
2.1.6。发布
代码:
@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 并未执行应做的事情。
测试:
请求:
GET本地主机:8080 / test / 0
回应:
200 OK“ id <= 0”
预期:
400错误的请求
请求:
GET localhost:8080 / test / -1
回应:
200 OK“ id <= 0”
预期:400错误请求
当我尝试GET localhost:8080 / test / teste时,按预期收到400错误请求。
答案 0 :(得分:1)
遇到相同的问题,并通过应用解决了
@Validated
在我的控制器上。那应该不是HTTP 400,而是HTTP 500。