使用HandlerInterceptorAdapter 修改get参数后@Validated校验不通过
时间: 2023-12-04 17:03:24 浏览: 101
Vue2.0 axios前后端登陆拦截器(实例讲解)
可能是因为在使用 `HandlerInterceptorAdapter` 修改 `get` 参数后,校验注解 `@Validated` 没有起作用的原因是,校验注解是在方法上进行的,而拦截器是在方法执行前或执行后进行拦截的,所以可能会导致校验注解无法起作用。
解决方法可以有两种:
1. 将校验注解放在拦截器中对参数进行校验。
2. 在方法中手动对修改后的参数进行校验,例如:
```java
@GetMapping("/test")
public void test(@Validated Param param) {
// 手动对参数进行校验
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Param>> violations = validator.validate(param);
if (!violations.isEmpty()) {
// 处理校验错误
}
// 处理业务逻辑
}
```
这样就可以解决在使用 `HandlerInterceptorAdapter` 修改 `get` 参数后校验注解无法起作用的问题。
阅读全文