IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   JSF/JSP/Servlet (https://www.ircforumlari.net/jsf-jsp-servlet/)
-   -   JSF 2.0 ve ViewScope (https://www.ircforumlari.net/jsf-jsp-servlet/494342-jsf-20-ve-viewscope.html)

YazılımMimarı 08 Temmuz 2012 14:00

JSF 2.0 ve ViewScope
 
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

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:

<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:

/**  *  * @[Ü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:

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:

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...]


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 08:36.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net