我是JAVA新手。我在SPRING中为自定义验证创建了一个新的自定义注解,但当我运行应用程序时,我看到以下错误:
The annotation @CourseCode must define the attribute groups
The annotation @CourseCode must define the attribute message
The annotation @CourseCode must define the attribute payload
The annotation @CourseCode must define the attribute value
下面是我的实现:
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import javax.validation.Constraint;
import javax.validation.Payload;
@Constraint(validatedBy = CourseCodeConstraintValidator.class)
@Target({ ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface CourseCode {
public String value() default "course-";
public String message() default "must start with course-";
public Class<?>[] groups() default {};
public Class<? extends Payload>[] payload() default {};
}
这是我的用法
@CourseCode
private String courseCode;
这是我的课程代码约束验证器。
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class CourseCodeConstraintValidator implements ConstraintValidator<CourseCode, String>{
private String coursePrefix;
@Override
public void initialize(CourseCode courseCode) {
coursePrefix = courseCode.value();
}
@Override
public boolean isValid(String code, ConstraintValidatorContext constraintValidatorContext) {
boolean result = code.startsWith(coursePrefix);
return result;
}
}
我希望使用我在类中定义的默认值。
1条答案
按热度按时间6jygbczu1#
经过几个小时的研究,我放弃了几天。现在我回来了,突然发现,在重启PC后切换Eclipse的视角已经达到了效果,现在它正像我预期的那样工作。感谢所有试图帮助我的人。