Spring validation参数校验之自定义校验规则及编程式校验等进阶篇
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validator.Validator;
public class MyValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
// 这里可以根据需要判断是否支持验证的类
return clazz.equals(MyCustomObject.class);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmpty(errors, "name", "name.empty");
MyCustomObject myObject = (MyCustomObject) target;
if (myObject.getAge() < 0) {
errors.rejectValue("age", "age.negative");
} else if (myObject.getAge() > 150) {
errors.rejectValue("age", "age.exceed");
}
// 可以添加更多的自定义验证逻辑
}
}
这个简单的例子展示了如何实现Validator
接口,并在validate
方法中添加自定义的校验逻辑。这里我们校验了MyCustomObject
实例的name
属性不为空,并校验age
属性在特定的范围内。如果不满足条件,会使用相应的错误代码拒绝提交的数据。
评论已关闭