Novamnete phase listener

0 respostas
A

Pessoal, coloquei um fase listener na minha aplicação mas ele só é chamado na fase RESTORE_VIEW. Mesmo depois que clico no botão da ação só entra nos métodos beforePhase e afterPhase na fase RESTORE_VIEW, enquanto as demais fases (APPLY_REQUEST_VALUES; PROCESS_EVENTS;, PROCESS_VALIDATIONS; UPDATE_MODEL_VALUES; INVOKE_APPLICATION; RENDER_RESPONSE) são ignoradas

<lifecycle>
	<phase-listener>com.tracker.TrackerPhaseListener</phase-listener>
</lifecycle>
public class  TrackerPhaseListener implements PhaseListener {

	private PhaseId phaseId = PhaseId.ANY_PHASE;
	
	public void setPhaseId(PhaseId phaseId) {
		this.phaseId = phaseId;
	}
	
	/* (non-Javadoc)
	 * @see javax.faces.event.PhaseListener#getPhaseId()
	 */
	public PhaseId getPhaseId() {
		return phaseId;
	}
	
	/**
	 * 
	 */
	public TrackerPhaseListener() {}

	/* (non-Javadoc)
	 * @see javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
	 */
	public void afterPhase(PhaseEvent event) {
		setPhaseId(event.getPhaseId());
		FacesContext context=event.getFacesContext();
		System.out.println(context.getViewRoot().getViewId());
		System.out.println("After Phase " + event.getPhaseId());
	}

	/* (non-Javadoc)
	 * @see javax.faces.event.PhaseListener#beforePhase(javax.faces.event.PhaseEvent)
	 */
	public void beforePhase(PhaseEvent event) {
		setPhaseId(event.getPhaseId());
		System.out.println("bofore Phase " + event.getPhaseId());
	}
}

Grato

Criado 14 de novembro de 2007
Respostas 0
Participantes 1