JSF

JSF Dersleri-Geçerlilik Denetleyicisi ile Form Örneği

Merhaba arkadaşlar. Bu yazımızda önceki yazımızda belirttiğimiz gibi bir form örneği yapacağız. Daha önce anlatmadığımız bir konu olan “geçerlilik denetleyicileri” konusundan 2 adet denetleyiciyi bu yazıda anlatmış olacağım. Şimdi ben size projenin kodlarını veriyorum. Kodların ardından açıklama kısmında denetleyicilerin anlatımı yer almaktadır. Kodlarda denetleyici dışında daha önce bahsetmediğimiz bir nokta yoktur.

index.xhtml Kodu:

 

gelen_veriler.xhtml Kodu:

 

 Degiskenler.java Kodu:

 

Denetleyicilerin Açıklaması:

Kodları çalıştırdığınızda ekranında form bileşenleri göreceksiniz. Buradaki form bileşenleri temel olarak çok kullanılanlardır.

Index sayfamız içindeki kodlarımızda inputText ve inputSecret kısmına dikkat ediniz. Orada required=true ifadesini göreceksiniz. Bu kullanıcının formu doldururken o kısmı boş geçmesini engelleyen yapıdır. Az sonra ekran çıktımızda da bunu göreceğiz.

Index sayfamız içinde kullanıcıdan epostayı aldığımız yere dikkat ediniz. Orada bir validatorMessage ve <f:validateRegex> etiketini göreceksiniz.  <f:validateRegex> belirlediğimiz bir formata göre kullanıcıdan e-mail alınması sağlayan bileşendir. validatorMessage ise kullanıcı istenen şekilde e-mail girmezse kullanıcıya verdirilecek mesajdır. Şimdi .  <f:validateRegex> içinde pattern kısmına atadığımız şartı inceleyelim.

pattern=”^[_A-Za-z0-9-+\]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})$”

-Bu kodda ^ işareti denetleyicinin başlangıcıdır.

[_A-Za-z0-9-\+] ifadesi sizin girilecek e-mailin büyük küçük harf, rakam, tire, , + işareti koyulmasına izin vermeniz anlamına gelmektedir.

(.[_A-Za-z0-9-]+)* ifadesinin sonundaki * ifadesi bu ifadenin optional olduğunu bize bildiriyor. işaretinden sonraki kısım bir önceki kısma eklenebilir anlamındadır. Yani işareti koyup bir takım ifadeler verdiğinizde bu girilen ifadeye eklenebilir anlamındadır. Burada işaretinden sonra . , büyük küçük harf, rakam, -, + koyabileceğimiz ama koymasak da olur anlamındanır.

@[A-Za-z0-9-] ifadesi ise e-mailde bulunan @ işaretini zorunlu kılar ve ondan sonra bir kelime girilmesi gerektiğini söyler.

(.[A-Za-z0-9]+)* ifadesi @ işaretinden sonraki kelimeden sonra . ile bir kelime ekleyebilirsiniz demektir. * işaretinden göreceğiniz gibi optional’dır.

(.[A-Za-z]{2,}) ifadesi de @ işaretinden sonraki kelime gurubunun ardından . ile en az 2 harflik bir ifadenin girilmesini zorunlu kılar.

$ işareti de denetleyicinin bittiğini bildirir.

Şimdi ekran çıktılarına bakalım. Resimlerin altında bazı açıklamalar bulunmaktadır.

5 adet textBox'tan 4'ünü boş bıraktık. Gönder butonuna bastık. 4 adet girilmesi zorunludur yazısı geldi.

5 adet textBox’tan 4’ünü boş bıraktık. Gönder butonuna bastık. 4 adet girilmesi zorunludur yazısı geldi.

 

 

 

 

 

 

 

 

 

 

 

 

 

Normal de de geçersiz olan bir e-mail girip göndere bastık. Geçersiz olduğunu bildirdi.

Normal de de geçersiz olan bir e-mail girip göndere bastık. Geçersiz olduğunu bildirdi.

 

 

 

 

 

 

 

 

 

 

 

 

Tüm değerli düzgün olarak girdik.

Tüm değerli düzgün olarak girdik.

 

 

 

 

 

 

 

 

 

 

 

Girilen verileri gösteren sayfa.

Girilen verileri gösteren sayfa.

 

 

 

 

 

 

 

 

 

 

 

Bu yazımızda da bu kadar arkadaşlar. Form örneğimizi ve geçerlilik denetleyicisini incelemiş olduk. Gelecek yazımızda Facelet Tags(Facelet Etiketleri) ‘ne değineceğiz. Esen kalın.

  • Alparslan Develioğlu

    İyi günler orta düzey MVC bilen birisi olarak gerçekten böyle harika yazılar yazdığınız için teşekkür ediyorum ve MVC ile bayağı benzer olmalarına da ayrıca sevindim 😀 yazılarınız gerçekten çok güzel ama keşke index kodlarından önce Java ManagedBean kodlarını yazsaydınız daha da güzel olurmuş. çünkü html kısmında sürekli oradan değişken alıyoruz.
    Teşekkür ederim

    • Merhaba.
      Öncelikle yorumunuzu bu kadar geç gördüğüm için özür dilerim. Övgüleriniz için teşekkür ederim. Tavsiyenizi dikkate alacağım ve bundan sonra ManagedBean kodlarını Xhtml kodlarından önceye alacağım.
      Kolay gelsin. İyi Çalışmalar.

  • Bilgi paylaşımınızdan dolayı teşekkürler. İlgili kişilere yararlı olacak bilgiler bunlar.

    Verdiğiniz kodun bu bölümünde hatayla karşılaştım.
    pattern=”^[_A-Za-z0-9-+\]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})$”

    Bu şekilde düzenlediğimde hata gitti.
    pattern=”^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$”

    Bilginiz olsun istedim.
    İyi çalışmalar.

    • Paylaşımınız için teşekkür ederim. Kodda deneme yaparken hatalı kısmı değiştirmeyi unutmuşum sanırım.