Search code examples
jsfjsf-1.2faces-configphaselistener

Is it possible to load dynamically a Phase Listener with JSF 1.2?


I have been using a Phase Listener to debug my JSF application.

Now I'm wondering if it's possible to load it dynamically depending on, for example, a system property is set or not (so I can commit the thing, and not worry about having to remove it before deploy in production). Does anyone know if there is a way to do that in faces-config.xml?

Thanks in advance!


Solution

  • You can add phaselisteners dynamically by UIViewRoot#addPhaseListener().

    PhaseListener phaseListener = new YourPhaseListener();
    FacesContext.getCurrentInstance().getViewRoot().addPhaseListener(phaseListener);
    

    You've only to do it on a per-view basis. It's perhaps better to keep the phase listener registered and let it take actions only when the desired system property is set or not.