Ajax ve JSF ile Anket Örneği
Merhaba arkadaşlar. Bu yazımızda JSF içinde Ajax kullanarak basit bir anket yapacağız. Kaynak kodlarımızı vermeden ve açıklamadan önce 2 noktaya değineyim. Birincisi JSF içinde anket yaparken PrimeFaces kütüphanesinden de yararlanabilirsiniz. Şu an için PrimeFaces kütüphanesine çok hakim değilim. Fakat öğrendikçe JSF içinde PrimeFaces kullanılması hakkında da yazılar yazacağım. İkinci nokta ise biz örneğimizi ArrayList kullanarak yapacağız. Uygun olan durum veritabanı kullanmaktır. Veritabanı kullanmayı öğrendiğimizde bu örneği veritabanı ile de yapacağız.
Şimdi örneğimize başlayalım. Örneğimizin kaynak kodları aşağıdadır. Önceki makalemizde JSF içinde Ajax kullanımından ve etiketlerden bahsettik. Bu nedenle index.xhtml içinde ayrıca anlatacağımız bir nokta yok. Bu yazıda ben java dosyamızın içeriğinden bahsedeceğim.
index.xhtml Kodu
Sonuclar.java Kodu
Java Kodunun Açıklaması
Oluşturduğumuz managed bean içinde string tipinde bir secilensehir oluşturduk. Bu string seçilen şehri tutacak. Xhtml ile ilişki içinde olacağından get ve set metodlarını da oluşturduk.
istanbul,samsun,bursa,adana,konya adında 5 adet static integer değişken oluşturduk. Bu değişkenleri static oluşturmamızdaki amaç oy verdikçe değişkenlerin değerlerinin artmasıdır. Bu örneği yazarken kendim de denedim. Static vermezsek verilen oy tutulmuyor. Değişken kendini sıfırlıyor.
static List ipler=new ArrayList(); ifadesi ile de static bir liste tanımladık. Static tanımlama yapmamızın amacı yukarıdaki amaç ile aynıdır.
Bu örnekte bence en önemli yer kullanıcının IP adresinin tespit edildiği kısımdır. Java ile sayfayı ziyaret eden kişinin IP’sini şu kodlarla tespit edebiliriz:
sonuclarigoster metodumuz içinde tespit ettiğimiz IP’nin ipler listesi içinde olup olmadığını kontrol ediyoruz. Eğer varsa kullanıcıya daha önce oy vermiş olduğunu söyleyip sonuçları ekrana yazdırıyoruz. Yoksa oy verip vermeden butona basıldığını kontrol ediyoruz. Vermeden basmışsa boş bir string döndürüyoruz. Verilmişse oyu işletip IP’sini listeye ekliyoruz ve sonuçları kullanıcının IP adresi ile birlikte ekrana yazdırıyoruz. Tekrar GÖNDER butonuna bastığımızda oy vermiş olduğumuzu söyleyip verdiğimiz oyu saymıyor.
Şimdi de ekran çıktılarına bakalım.
İstanbul seçeneğini seçip GÖNDER butonuna tıklıyorum.
Verdiğim oyu işledi.Sonucu ve IP adresimi ekrana yazdı.
Tekrar GÖNDER butonuna basıyorum. IP adresim listede kayıtlı olduğu için tekrar oy vermeme izin vermiyor.
JSF&Ajax kullanarak basitçe bir anketi bu şekilde yapabiliyoruz. Gelecek yazımızda veritabanı konusuna giriş yapacağız.
Esen kalın.
Selam ve Sevgilerimle