I know I should set this problem with error messages down and move on, but.. it's got me intrigued.. So, since I couldn't get Craig's cool idea to work, I decided to probe a bit.
Here's what I have in my RegistrationBean (backing bean): private HtmlInputSecret password = null; (with usual getter and setter ..) String pClientid = password.getClientId(FacesContext.getCurrentInstance()); System.out.println("pClientid is: " + pClientid); >>Output: pClientid is: registrationForm:password UIComponent uic = FacesContext.getCurrentInstance().getViewRoot().findComponent(pClientid); System.out.println("uic: " + uic.getClientId(FacesContext.getCurrentInstance())); >>Output: uic: registrationForm:password error(uic, messages.getMessage("password.mismatch")); Iterator itt = FacesContext.getCurrentInstance().getClientIdsWithMessages(); while (itt.hasNext()) { System.out.println("nextOne is: " + itt.next()); } >>Output: nextOne is: null So seems like I am in fact queuing a FacesMessage to a "good" UICompenent with my error(.. ) call, however, it is mysteriously not appearing within my iterator. (So it is no wonder that the jsp doeasn't display properly with my error message in the proper place..) Does anyone see what the problem is..? Many thanks in advance! Geeta