Primefaces ile Email Validasyon
Projemizde email alanı girilmesini istediğimiz ve format kontrolü yapmak istediğimiz zaman REGEX ile email uygunluğunu kontrol edebiliriz.
Örnek Email Validator
İnputtext Aracı
Text aracımızın içinde <f:validator> kullanarak email regex kontrolü yapabiliriz.Validator ID kısmı bizim özel hazırlayacağımız Validator sınıfımıza verdiğimiz key değeri oluyor.
<p:inputText id="txtEmail" value="#{userCreationBean.email}" style="width:200px"
validatorMessage="Email address must be valid.">
<f:validator validatorId="custom.emailValidator" />
</p:inputText>
CustomEmailValidator Sınıfı
Email Validator sınıfımızda key değerimizi yazalım.
@FacesValidator(“custom.emailValidator”)
Burada custom.emailValidator inputtext aracımızda kullanacağımız validatorID keyimizdir.
Burada EMAIL_PATTERN = “^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@”
+ “[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$”;
Kurallarımızı belirler. Regex ile ilgili detay
@FacesValidator("custom.emailValidator")
public class EmailValidator implements Validator, ClientValidator {
private Pattern pattern;
private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
public EmailValidator() {
pattern = Pattern.compile(EMAIL_PATTERN);
}
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
if(value == null) {
return;
}
if(!pattern.matcher(value.toString()).matches()) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Validation Error",
value + " is not a valid email;"));
}
}
public Map<String, Object> getMetadata() {
return null;
}
public String getValidatorId() {
return "custom.emailValidator";
}
}
Kolay Gelsin 🙂