JavaServer Faces: Introduction by Example takes you through building and deploying