IRC ve mIRC Kullanıcılarının Buluşma Noktası
  Mobil Sohbet, Sohbet ve Sohbet Odaları




Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 08 Temmuz 2012, 14:00   #1
Çevrimdışı
JSF 2.0 ve ViewScope





Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Jsf 1.x de application, request ve session olmak üzere 3 tane scope vardı. Jsf 2.0 ile birlikte bunlara view,flash ve custom olmak 3 tane daha scope eklendi. Ben burada viewscope ne olduğundan, nasıl kullanıldığından bahsedeceğim.
Viewscope, Jsf 1.x den session ile request arasında kalan bir scope dur.Örneğin, requestscope da, bir veriyi, sayfa gösterildiğinde eğer ekstra bir işlem yapmazsak saklayamıyorduk ve bellekten siliniyordu. Bunu session ve ya inputhidden şeklinde tutmazsak o değişkeni ulaşıp kullanmamız imkansızdı. Viewscope, requestscope dan bir adım öteye geçerek sayfa gösterildiğinde de veriyi elde tutabiliyoruz. Sayfa gösteriminde çıkıldığından bellekten veri siliniyordu. Tam olarak ne anlatmak istediğimi ve nasıl kullanıldığını bir örnek üzerinde göstermek istiyorum. Öncelikle bir count.xhtml sayfası oluşturalım.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<h:body> <h:form> <h:commandbutton action="#{countbean.plus}" value="ARTIR"> </h:commandbutton> </h:form> </h:body>

Şimdi, requestscope ile countbean sınıfını oluşturalım.
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/** * * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ümit */ @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]gedBean(name="countbean") @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]Scoped public class CounterBean { private int counter = 1; public void plus(){ System.out.println("Counter : " + counter++); } }

Şimdi ise, projeyi deploy edip çalıştırıyoruz ardından ARTIR butonuna tıkladığımızda counterın değeri sürekli “1″ olarak gözükecektir.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
INFO: Counter: 1 INFO: Counter: 1 INFO: Counter: 1 INFO: Counter: 1

Bu durumdan kurtulmak için ise, countbean sınıfındaki @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]Scoped kısmını @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]coped olarak değiştiriyoruz. Tekrar projeyi çalıştırıp, çıkan sayfada ARTIR butonuna tıkladığımızda;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
INFO: Counter: 1 INFO: Counter: 2 INFO: Counter: 3 INFO: Counter: 4

şeklinde gözükecektir.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Jsf 1.x de application, request ve session olmak üzere 3 tane scope vardı. Jsf 2.0 ile birlikte bunlara view,flash ve custom olmak 3 tane daha scope eklendi. Ben burada viewscope ne olduğundan, nasıl kullanıldığından bahsedeceğim.
Viewscope, Jsf 1.x den session ile request arasında kalan bir scope dur.Örneğin, requestscope da, bir veriyi, sayfa gösterildiğinde eğer ekstra bir işlem yapmazsak saklayamıyorduk ve bellekten siliniyordu. Bunu session ve ya inputhidden şeklinde tutmazsak o değişkeni ulaşıp kullanmamız imkansızdı. Viewscope, requestscope dan bir adım öteye geçerek sayfa gösterildiğinde de veriyi elde tutabiliyoruz. Sayfa gösteriminde çıkıldığından bellekten veri siliniyordu. Tam olarak ne anlatmak istediğimi ve nasıl kullanıldığını bir örnek üzerinde göstermek istiyorum. Öncelikle bir count.xhtml sayfası oluşturalım.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<h:body> <h:form> <h:commandbutton action="#{countbean.plus}" value="ARTIR"> </h:commandbutton> </h:form> </h:body>

Şimdi, requestscope ile countbean sınıfını oluşturalım.
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/** * * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ümit */ @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]gedBean(name="countbean") @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]Scoped public class CounterBean { private int counter = 1; public void plus(){ System.out.println("Counter : " + counter++); } }

Şimdi ise, projeyi deploy edip çalıştırıyoruz ardından ARTIR butonuna tıkladığımızda counterın değeri sürekli “1″ olarak gözükecektir.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
INFO: Counter: 1 INFO: Counter: 1 INFO: Counter: 1 INFO: Counter: 1

Bu durumdan kurtulmak için ise, countbean sınıfındaki @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]Scoped kısmını @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]coped olarak değiştiriyoruz. Tekrar projeyi çalıştırıp, çıkan sayfada ARTIR butonuna tıkladığımızda;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
INFO: Counter: 1 INFO: Counter: 2 INFO: Counter: 3 INFO: Counter: 4

şeklinde gözükecektir.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
radyo44.com.tr
Cevapla

Etiketler
20, jsf, ve, viewscope

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık