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>
Nov 12th, 2008
  1. Nov 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

  2. Nov 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.

  3. Erkan yildirim
    Oct 20th, 2010 at 16:27 | #3

    Paylaşım için teşekürler melih hocm

  4. Erkan yildirim
    Oct 20th, 2010 at 16:28 | #4

    Erkan yildirim :
    Paylaşım için teşekkürler melih hocam

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>