The problem could be that the ID in the (X)HTML page that is generated is not necessarily the same as the ID you gave to the JSF component. That said, some component sets allow you to set a forced ID to be generated in the resulting (X)HTML page. For example Apache MyFaces Tomahawk has "extended components" with a forceId argument. If you're using Tomahawk you could use this feature. Or you could dive into the documentation of the component set that you're using to see if there's a comparable feature. Hope this helps!