2012-04-02 33 views
5

Ek açıklama + regex kullanarak bir e-postanın doğrulanmasını yapmalıyım.ek açıklama ve regex

@NotNull 
@Pattern(regexp="[email protected]+\\.[a-z]+") 
private String email; 

Ancak, ben e-posta alanına Yanlış e-posta adresine sahip olduğunda bir hata mesajı yazdırmak için nasıl bilmiyorum: Aşağıdaki kullanmaya çalıştı. Herhangi bir fikir?

+1

. Kolay cevap: 'System.out.println (...)' :) – Thomas

+3

Soru için üzgünüm, ama neden @ E-posta ek açıklamalarını kullanmıyorsunuz? – Peterino

cevap

8

İlk olarak, Pattern ek açıklamanıza bir message özniteliği eklemelisiniz.

class User{ 
@NotNull 
@Pattern(regexp="[email protected]+\\.[a-z]+", message="Invalid email address!") 
private String email; 
} 

Sonra bir doğrulayıcı tanımlamalıdır:

ValidatorFactory vf = Validation.buildDefaultValidatorFactory(); 
Validator validator = vf.getValidator(); 
User user = new User(); 
user.setEmail("[email protected]"); 
Set<ConstraintViolation<User>> constraintViolations = validator 
     .validate(user); 

Sonra doğrulama hataları bulmak posta değişken bazı sınıf Kullanıcının parçası olduğunu varsayalım. Yukarıdaki yorumlarda ima edildiği gibi

for (ConstraintViolation<Object> cv : constraintViolations) { 
     System.out.println(String.format(
      "Error here! property: [%s], value: [%s], message: [%s]", 
      cv.getPropertyPath(), cv.getInvalidValue(), cv.getMessage())); 
} 
0

:

Eğer doğrulama yapmak ve o mesajı yazdırmak istediğiniz bağlıdır
@NotNull 
@Email(message = "This email address is invalid") 
private String email; 
İlgili konular