There's a good article by David Geary over on IBM's developerWorks site about creating a custom autocomplete component. He shows how to use Ajax to build a composite JSF component which changes the list of completion choices in a listbox as a user types characters in a text field.
This is the start of a series of JSF articles following on from his original three part JSF 2.0 introduction. Definitely worth a look if you're interested in using JavaServer Faces.