这就是我所做的。
注解
public @interface ValidateString { String[] acceptedValues(); String message() default "{uk.dds.ideskos.validator.ValidateString.message}"; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default { }; }验证类别
public class StringValidator implements ConstraintValidator<ValidateString, String>{ private List<String> valueList; @Override public void initialize(ValidateString constraintAnnotation) { valueList = new ArrayList<String>(); for(String val : constraintAnnotation.acceptedValues()) { valueList.add(val.toUpperCase()); } } @Override public boolean isValid(String value, ConstraintValidatorContext context) { return valueList.contains(value.toUpperCase()); }}我用它像
@ValidateString(acceptedValues={"Integer", "String"}, message="Invalid dataType")String dataType;Long maxValue;Long minValue;现在,我需要弄清楚如何执行条件检查。如果为String,则maxValue和minValue应该为null或零。
有任何想法吗?



