spring自定义参数校验提问

浅浅浅浅 发布于 04/15 15:35
阅读 49
收藏 0

想自定义一个参数校验注解,满足需求如下:当type=0的时候"VerificationCode"不能为空,当type=0的时候password不能为空。我了解了一下参数校验注解的实现,好像没办法实现。想在这问问看大家有没有可用的想法能和我分享一下谢了啊

加载中
0
君君要上天哈
君君要上天哈
@Documented
@Constraint(validatedBy = { CheckByFieldValidator.class })
@Target({ TYPE })
@Retention(RUNTIME)
public @interface CheckByField {

    String message() default "取值有误";

    int byField();

    Class<?>[] groups() default { };

    Class<? extends Payload>[] payload() default { };
}


public class CheckByFieldValidator implements ConstraintValidator<CheckByField, Object> {

    int byField;

    @Override
    public void initialize(CheckByField constraintAnnotation) {
        this.byField = constraintAnnotation.byField();
    }

    @Override
    public boolean isValid(Object object, ConstraintValidatorContext context) {
        //通过反射获取类字段值,然后做判断
        return false;
    }
}

只能自定义一个用在类上的注解。大致思路如上,该代码未经验证,需要你自己去尝试一下。

 

返回顶部
顶部