No. It is not in a package.
>>> [EMAIL PROTECTED] 06/15/06 11:54 PM >>>
Is CustomPhaseListener in a package?
If so you need to declare the phaselistener with the full class name like
package.CustomPhaseListener
On 6/15/06, B Balakrishnan <[EMAIL PROTECTED]> wrote:
>
> I have created a class that implements PhaseListener interface and
> registered it in the faces-config.xml lifecycle as follows:
>
> <lifecyle>
> <phase-listener>
> CustomPhaseListener
> </phase-listener>
> </lifecyle>
>
> My class code is
>
> import java.util.Iterator;
> import javax.faces.application.FacesMessage;
> import javax.faces.component.UIComponent;
> import javax.faces.component.UIViewRoot;
> import javax.faces.context.FacesContext;
> import javax.faces.event.PhaseEvent;
> import javax.faces.event.PhaseId;
> import javax.faces.event.PhaseListener;
>
> public class CustomPhaseListener implements PhaseListener {
>
> public PhaseId getPhaseId() {
> System.out.println("in getphaseid");
> return PhaseId.RENDER_RESPONSE;
> }
>
> public void beforePhase(PhaseEvent e) {
> System.out.println("in before phase");
> FacesContext fc = e.getFacesContext();
> UIViewRoot root = fc.getViewRoot();
>
> Iterator i = fc.getClientIdsWithMessages();
>
> while(i.hasNext()) {
> String clientId = (String) i.next();
> UIComponent c = root.findComponent(clientId);
> String fieldRef = (String) c.getAttributes().get("fieldRef");
> if(fieldRef != null) {
> Iterator j = fc.getMessages(clientId);
> while(j.hasNext()) {
> FacesMessage fm = (FacesMessage)j.next();
> fm.setDetail(fm.getDetail() +": "+fieldRef);
> }
> }
> }
> }
>
> public void afterPhase(PhaseEvent e) {
> System.out.println("in after phase");
> }
> }
>
> But the methods of the CustomPhaseListener are not being invoked at all.
> Any ideas why?
>
>