参数校验
This commit is contained in:
@ -1,28 +1,22 @@
|
||||
package com.greenorange.promotion.annotation;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.greenorange.promotion.model.enums.UserRoleEnum;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
|
||||
|
||||
// 枚举校验器
|
||||
public class EnumValidator implements ConstraintValidator<EnumValue, String> {
|
||||
|
||||
private EnumValue enumValue;
|
||||
|
||||
@Override
|
||||
public void initialize(EnumValue constraintAnnotation) {
|
||||
this.enumValue = constraintAnnotation;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(String value, ConstraintValidatorContext context) {
|
||||
if (value == null) {
|
||||
return true; // 如果值为 null,跳过校验,可以用 @NotNull 另行校验
|
||||
}
|
||||
|
||||
// 获取枚举类
|
||||
Class<? extends Enum<?>> enumClass = enumValue.enumClass();
|
||||
return Arrays.stream(enumClass.getEnumConstants())
|
||||
.anyMatch(enumConstant -> enumConstant.name().equals(value));
|
||||
return UserRoleEnum.getEnumByValues(value) != null;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package com.greenorange.promotion.annotation;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import jakarta.validation.Constraint;
|
||||
import jakarta.validation.Payload;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
Reference in New Issue
Block a user