It is a server side component based user interface framework. It is used to develop web applications. It provides a well-defined programming model and consists of rich API and tag libraries. The latest version JSF 2 uses Facelets as its default templating system. It is written in Java.
The JSF API provides components (inputText, commandButton etc) and helps to manage their states. It also provides server-side validation, data conversion, defining page navigation, provides extensibility, supports for internationalization, accessibility etc.
The JSF Tag libraries are used to add components on the web pages and connect components with objects on the server. It also contains tag handlers that implements the component tag.
With the help of these features and tools, you can easily and effortlessly create server-side user interface.
# Java Server Faces Versions History
|Jsf 2.3||Expected in 2017||It may includes major features: bean validation for complete classes, push communication using enhanced integration with cdi. |
|Jsf 2.2 ||21-05-2013||It has introduced new concepts like stateless views, page flow and the ability to create portable resource contracts.|
|Jsf 2.1||22-11-2010||It was a maintenance release 2 of jsf 2.0. only a very minor number of specification changes.|
|Jsf 2.0||01-07-2009 ||It was major release for ease of use, enhanced functionality, and performance. coincides with java ee 6.|
|Jsf 1.2||11-05-2006||It has many improvements to core systems and apis. coincides with Java ee 5. initial adoption into java ee. |
|Jsf 1.1||27-05-2004||It was a bug-fix release. no specification changes.|
|Jsf 1.0||11-03-2004||It was a initial specification released. |
# Benefits of JavaServer Faces
1) It provides clean and clear separation between behavior and presentation of web application. You can write business logic and user interface separately.
2) JavaServer Faces API?s are layered directly on top of the Servlet API. Which enables several various application use cases, such as using different presentation technologies, creating your own custom components directly from the component classes.
3) Including of Facelets technology in JavaServer Faces 2.0, provides massive advantages to it. Facelets is now the preferred presentation technology for building JavaServer Faces based web applications.
Java: You must have Java 7 or higher version.
Java IDE: In this tutorial, we have used NetBean IDE 8.2. Although you can also use other Java IDEs.
Server: We did not install server seperatly. All the examples are executed on the default server installed along with NetBeans IDE 8.2.
JSF 2.2 Library: Latest JavaServer Faces libraries are automatically installed with the IDE. So, you don't need to install it manually.