I would not take "JavaServer Faces 2_0, The Complete Reference" and "Core JavaServer Faces (3rd Edition)" David Geary.
To my mind it is better to take free course from here http://www.coreservlets.com/JSF-Tutorial/jsf2/ It includes exersises so you think but not only read.
After that you can make up an idea of big cool site (like JavaRanch.com) and gradually translate it into life. This will be the best way of study!
The Internet and JavaRanch are best friends for every beginner.
True person is moral, false is right!
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com