Core JavaServer Faces - Cay Horstmann (Prentice Hall, 2007)