Este artículo fue probado por expertos para asegurar la exactitud de nuestro tutorial.
Solución:
@Size(min=10,max=10)
haría el trabajo si por espacio en blanco quiere decir null.
si no pones @NotNull
anotación, null
el valor pasaría la validación.
Si su espacio en blanco significa Cadena vacía, entonces necesita usar @Pattern
validador:
@Pattern(regexp="(^$|[0-9]10)")
esto coincide con vacío string o número de 10 dígitos.
Tal vez podría mejorar la respuesta sugerida con el uso de libphonenumber de Google Code para validar sus números de teléfono.
Para aquellos que buscan un validador personalizado para números de teléfono usando libphonenumber
PhoneNumber.java libphonenumber requiere configuración regional para la validación, por lo que debemos crear una clase personalizada para almacenar el teléfono y el código de región
public class PhoneNumber
@NotEmpty
private String value;
@NotEmpty
private String locale;
Anotación @Phone Se usará para anotar campos para validación
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Documented
@Constraint(validatedBy = PhoneNumberValidator.class)
@Target( ElementType.METHOD, ElementType.FIELD )
@Retention(RetentionPolicy.RUNTIME)
public @interface Phone
String locale() default "";
String message() default "Invalid phone number";
Class>[] groups() default ;
Class extends Payload>[] payload() default ;
PhoneNumberValidator.java Comprobará la validez del teléfono para el código de región proporcionado
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class PhoneNumberValidator implements ConstraintValidator
@Override
public void initialize(Phone constraintAnnotation)
@Override
public boolean isValid(PhoneNumber phoneNumber, ConstraintValidatorContext context) phoneNumber.getValue()==null)
return false;
try
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
return phoneNumberUtil.isValidNumber(phoneNumberUtil.parse(phoneNumber.getValue(), phoneNumber.getLocale()));
catch (NumberParseException e)
return false;
Uso
@Phone
private PhoneNumber phone;
Reseñas y puntuaciones del tutorial
Si piensas que ha resultado útil nuestro post, nos gustaría que lo compartas con más entusiastas de la programación de esta forma nos ayudas a dar difusión a este contenido.