Core JavaServer faces - Geary, David M; Horstmann, Cay (Prentice Hall, 2010)