Temadown Wptr | Theme by mg12 | Valid XHTML 1.1 and CSS 3
  • JSF – Phase Listener Kullanımı

    Phase Listener bir JSF lifecycle’ i (yasam dongusunu) dinleyen bu surecte calistirilan bir listener cesididir.
    Ornek:
    PhaseListener arayuzunu implemente eden bir class yaziyoruz. Bu class icerisindeki beforePhase sayfa render edilmeden once, afterPhase ise render edildikten sonra calistirilir.

      package com.mergeCons.util.userManagement;  
       
      import javax.faces.application.NavigationHandler;
      import javax.faces.context.FacesContext;
      import javax.faces.event.PhaseEvent;
      import javax.faces.event.PhaseId;
      import javax.faces.event.PhaseListener;
      import javax.servlet.http.HttpSession;  
       
      public class PhaseList implements PhaseListener {  
       
          public PhaseId getPhaseId() {
              System.out.println("getPhaseId() calisti");
              return PhaseId.RESTORE_VIEW;
          }  
       
          public void beforePhase(PhaseEvent event) {
              System.out.println("beforePhase() calisti");
          }  
       
          public void afterPhase(PhaseEvent event) {
              System.out.println("afterPhase() calisti");
              FacesContext fc = event.getFacesContext();
              String page = fc.getViewRoot().getViewId();
              HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
              System.out.println("session.getId() = " +session.getId());
              System.out.println("page = "+page);  
       
              //NavigationHandler nh = fc.getApplication().getNavigationHandler();
              //nh.handleNavigation(fc, null, "logout");  
       
          }
      }

    faces-config.xml icerisinde asagidaki phase-listener tanimini yapiyoruz.

      <lifecycle>
              <phase-listener>com.bit.util.userManagement.PhaseList</phase-listener>
      </lifecycle>
    • del.icio.us
    • Facebook
    • Google
    • Digg
    • Mixx
    • Technorati
    • Live
    • Reddit
    • Sphinn
    • Furl
    Çarşamba, Kasım 12th, 2008 at 18:14
  • Cumartesi, Kasım 29th, 2008 at 10:18 | #1

    Merhaba hocam,
    PhaseList sınıfını implemente ettim, sayfalar her çağırıldığında konsol’a bişeyler yazıyor. Ancak burada sayfaların kontrolünü nasıl sağlarım. Yani ben admin klasöründeki tüm dosyalarda bu kontrolü yapmak ve eğer oturum açılmamışsa login’e yönlendirme yapmak istiyorum.
    Bu konuda düşüncelerinizi paylaşır mısınız?

    İyi günler

  • Cumartesi, Kasım 29th, 2008 at 10:26 | #2

    fc.getViewRoot().getViewId(); size sayfa ismini verir buna göre kontrol yapabilirsiniz.
    JSF icin farkli security frameworkler var bunlari inceleyin derim biz seam security kullaniyoruz.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
TOP