如何校验@RequestParam参数
时间: 2023-11-30 18:43:23 浏览: 99
@RequestParam是Spring MVC中用于获取请求参数的注解,可以用于将请求参数绑定到控制器方法的参数上。为了保证@RequestParam参数的正确性,可以进行参数校验。下面是两种常用的@RequestParam参数校验方法:
1.使用@Valid注解和BindingResult对象进行参数校验
```java
@PostMapping("/example")
public String example(@RequestParam @Min(1) @Max(10) Integer num, BindingResult result) {
if (result.hasErrors()) {
// 处理参数校验错误
}
// 处理业务逻辑
}
```
在@RequestParam注解上添加@Valid注解,然后在方法参数中添加BindingResult对象,当参数校验失败时,BindingResult对象会自动将错误信息封装到其中。
2.使用自定义校验注解
```java
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = NumValidator.class)
public @interface Num {
String message() default "参数不合法";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class NumValidator implements ConstraintValidator<Num, Integer> {
@Override
public boolean isValid(Integer value, ConstraintValidatorContext context) {
return value != null && value >= 1 && value <= 10;
}
}
@PostMapping("/example")
public String example(@RequestParam @Num Integer num) {
// 处理业务逻辑
}
```
自定义一个校验注解@Num,并在其中指定校验逻辑,然后在@RequestParam注解上添加@Num注解即可。当参数不合法时,会抛出ConstraintViolationException异常。
阅读全文