JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications.
It was formalized as a standard through the Java Community Process and is part of the Java Platform, Enterprise Edition.
JSF 2 uses Facelets as its default templating system.
Based on a component-driven UI design-model, JavaServer Faces uses XML files called view templates or Facelets views.
The FacesServlet processes requests, loads the appropriate view template, builds a component tree,
processes events, and renders the response (typically in the HTML language) to the client.
The state of UI components and other objects of scope interest is saved at
the end of each request in a process called stateSaving (note: transient true),
and restored upon next creation of that view.
–JSF 2.2 (2013-05-21) – Introduced new concepts like stateless views, page flow and the ability to create portable resource contracts.
–JSF 2.1 (2010-11-22) – Maintenance release 2 of JSF 2.0. Only very minor amount of spec changes.
–JSF 2.0 (2009-07-01) – Major release for ease of use, enhanced functionality, and performance. Coincides with Java EE 6.
–JSF 1.2 (2006-05-11) – Many improvements to core systems and APIs. Coincides with Java EE 5. Initial adoption into Java EE.
–JSF 1.1 (2004-05-27) – Bug fix release. No specification changes.
–JSF 1.0 (2004-03-11) – Initial specification released.