JSF PrimeFaces Email Regex Kontrolu

Ahbap

Harbi Üye
Forum Üyesi
Katılım
29 Mayıs 2019
Mesajlar
8,562
Tepkime puanı
2
PHP:
  <f:view>
 <h:form id="form">   
 <p:growl id="growl" showDetail="true"  life="3000"/>
 <p:panel id="panel-----" header="-----nuzu Paylaşınız.." style="margin-bottom:10px;"> 
      <h:outputLabel for="email" value="Email"  />
    <p:inputText value="#{-----Control.-----.-----Email}" validatorMessage="Email formatını kontrol ediniz!" size="50"
     id="email" label="Email" required="true">
     <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
     </p:inputText>
     <p:message for="email" />    
    </p:panel>
<p:commandButton value="Ekle" actionListener="#{-----Control.save()}" icon="ui-icon-disk" update="growl,panel-----" />  
    </h:form>
    </f:view>
</div>

Istemci taraflı email regex kontrolu inputText' imiz için,

PHP:
<f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />


Regex'e uygum olmayan formatta ise vereceğimiz client mesaj için inputText'in validatorMessage özelliğini kullanıyoruz.

PHP:
validatorMessage="Email formatını kontrol ediniz!"


Bu kısım client taraflı kontroller idi.
Asıl önemli olan sunucu taraflı kontrollerimiz.
Validasyonumuz için bir JSF ManagedBan oluşturuyoruz fakat Validator interface sınıf'ımızı implements ediyoruz. implements ettiğimiz Validator sınıfımızın default constructor olan override validate metodu ile gelmektedir.


PHP:
package Egas.View.ControllerBeans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;


/**
 *
 * [MENTION=21475]AuthoR[/MENTION] turgay
 */
[MENTION=88634]mana[/MENTION]gedBean(name = "-----Validator")
[MENTION=22994]RequeSt[/MENTION]Scoped
public class -----Validator implements Validator{

    private static final String EMAIL_PATTERN = "[\\w\\.-]*[a-zA-Z0-9_]@[\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]";
    private Pattern pattern;
    private Matcher matcher;

    /** Creates a new instance of -----Validator */
    public -----Validator() {        

    }    

 @Override
    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {

        throw new UnsupportedOperationException("Format henüz desteklenmiyor.");
    }

    public void validateEmail(FacesContext context, Object value) {
        pattern = Pattern.compile(EMAIL_PATTERN);
        matcher = pattern.matcher(value.toString());
        if (!matcher.matches()) {
            FacesMessage msg =
                    new FacesMessage("Email adres hatası.",
                    "Geçersiz Email formatı.");
            msg.setSeverity(FacesMessage.SEVERITY_ERROR);
            System.out.println(msg);
            throw new ValidatorException(msg);

        }
        throw new UnsupportedOperationException("Format henüz desteklenmiyor.");
    }

}
 

Benzer konular

Nutella

Harbi Üye
Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
9,432
Tepkime puanı
8
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş