I like the DelegatingPhaseListenerMulticaster. But they dont respect the Phase-Id for the registered Phaselisteners!
Here is a simple improvement ...
RegardsCode:public class DelegatingPhaseListenerMulticaster implements PhaseListener { public PhaseId getPhaseId() { return PhaseId.ANY_PHASE; } public void beforePhase(PhaseEvent event) { Collection listeners = getDelegates(event.getFacesContext()); Iterator it = listeners.iterator(); while (it.hasNext()) { PhaseListener listener = (PhaseListener) it.next(); PhaseId phaseId = event.getPhaseId(); if (phaseId.equals(listener .getPhaseId())) { listener.beforePhase(event); } } } public void afterPhase(PhaseEvent event) { Collection listeners = getDelegates(event.getFacesContext()); Iterator it = listeners.iterator(); while (it.hasNext()) { PhaseListener listener = (PhaseListener) it.next(); PhaseId phaseId = event.getPhaseId(); if (phaseId.equals(listener .getPhaseId())) { listener.afterPhase(event); } } } ...
Andreas


Reply With Quote
