我为两个当地时间制作了一个自定义注释,该注释有效,但是我遇到了问题。我在注释中设置的消息不会显示。 有人有什么主意吗?预先感谢您的建议。
这是@Annotation 默认消息是:“结束日期应在开始日期之后 日期”。
import java.lang.annotation.*;
import javax.validation.Constraint;
import javax.validation.Payload;
@Target( {ElementType.ANNOTATION_TYPE, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = { ValidAfterDateValidator.class })
@Documented
public @interface ValidAfterDate {
String message() default "The End date should be after the starting
date." ;
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
这是我的验证者:
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class ValidAfterDateValidator implements
ConstraintValidator<ValidAfterDate, Horaire> {
@Override
public void initialize(ValidAfterDate constraintAnnotation) {
}
@Override
public boolean isValid(Horaire horaire, ConstraintValidatorContext
context) {
if (horaire == null) {
return true;
}
return horaire.getHeureDebut().isBefore(horaire.getHeureFin());
}
}
这是我的@entity:
@ValidAfterDate
@Component
@Entity(name="horaire")
public class Horaire {
@Id @GeneratedValue
@Column(name = "id_horaire")
private Integer id;
@NotNull
@Column(name = "heure_debut")
private LocalTime heureDebut;
@NotNull
@Column(name = "heure_fin")
private LocalTime heureFin;