<dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>2.0.2</version> </dependency> public class User { @NotNull private String name; @Email private String email; // Getters and Setters } import jakarta.validation.Validation; import jakarta.validation.Validator; public class Main { public static void main(String[] args) { User user = new User(); user.setName("John"); user.setEmail("invalid-email"); Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); Set<ConstraintViolation<User>> violations = validator.validate(user); for (ConstraintViolation<User> violation : violations) { System.out.println(violation.getMessage()); } } } <validation-config xmlns="https://jakarta.ee/xml/ns/validation/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/validation/config https://jakarta.ee/xml/ns/validation/config_2_0.xsd"> <message-interpolator>com.example.MyMessageInterpolator</message-interpolator> <constraint-validator-factory>com.example.MyConstraintValidatorFactory</constraint-validator-factory> </validation-config> @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @Constraint(validatedBy = PhoneNumberValidator.class) public @interface PhoneNumber { String message() default "Invalid phone number"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; } public class PhoneNumberValidator implements ConstraintValidator<PhoneNumber, String> { @Override public void initialize(PhoneNumber constraintAnnotation) { } @Override public boolean isValid(String value, ConstraintValidatorContext context) { } }


上一篇:
下一篇:
切换中文