试图为大小请求参数添加@Max验证。但是,我输入的任何值似乎都是有效的。
Spring Boot应用程序中的一种简单控制器方法。
@GetMapping("/all")
public String getAll(@RequestParam @Max(value=20, message = "should be less than 20") int sizes) {
if (sizes > 20) {
return "Pass but not valid";
}
return "Valid";
}
当请求参数大小为21时,我获得通过但无效但错误消息 http://localhost:8080/all?sizes=21
有什么建议吗?谢谢
答案 0 :(得分:0)
您在班级上方放置@Validated吗?
答案 1 :(得分:0)
我发现以下答案 (Spring Controller: RequestParam not validated despite @Valid and @Size) 对这个问题很有帮助。
基本上,它是这样说的:
MethodValidationPostProcessor
需要添加到配置中。@Validated
注释需要添加到控制器类之上。ConstraintViolationException
或 MethodArgumentNotValidException
。要运行此设置,我必须添加 spring-boot-starter-validation
,就像此答案中所说的那样:"The Bean Validation API is on the classpath but no implementation could be found" preventing startup