I recently started studying JSF n AJAX about 2 months back. I believe that they go hand in hand. Both try to give web users a desktop like experience.
JSF on one hand introduces its request processing life cycle so the request and response objects are a thing of past. Having good knowledge of the lifecycle is required to know how exactly what events are triggered and that too in which phases of lifecycle so all the coder has to do is write appropriate handlers for the same. Not to mention one can add custom components and make own library.
AJAX as most of us know refreshes a page partially ... gets the data in the background .. but not to forget AJAX is browser dependent. Coding depends on browser and the way each broser handles the low level details of things like
* connecting to the server
* call the callback functions on receiving response
I strongly believe that the new frameworks which are using both of these technologies together will be the next big thing ... Java has changed server side programming .. AJAX client side display ...
we can write JSF components that use AJAX and makes the display and the coding....
simply a WONDERFUL experience for both users n coders