Latest version of JSF 2.2 provides the following features.
Component Based Framework
JSF is a server side component-based framework. It provides inbuilt components to build web application. You can use HTML5, Facelets tags to create web pages.
Facelets is an open source Web template system. It is a default view handler technology for JavaServer Faces (JSF). The language requires valid input XML documents to work. Facelets supports all of the JSF UI components and focuses completely on building the view for a JSF application.
Expression Language provides an important mechanism for creating the user interface (web pages) to communicate with the application logic (managed beans). The EL represents a union of the expression languages offered by JavaServer Faces technology.
HTML5 is the new standard for writing web pages. JavaServer Faces version 2.2 offers an easy way for including new attributes of HTML 5 to JSF components and provides HTML5 friendly markup.
Ease and Rapid web Development.
JSF provides rich set of inbuilt tools and libraries so that you can easily and rapidly develop we application.
JSF supports internationalization for creating World Class web application. You can create applications in the different-different languages. With the help of JSF you can make the application adaptable to various languages and regions.
JSF provides annotations facility in which you can perform validation related tasks in Managed Bean. It is good because you can validate your data in bean rather than in HTML validation.
JSF provide default Exception handling so you can develop exception and bug free web application.
Introducing template in new version of JSF provides reusablity of components. In JSF application, you can create new template, reuse template and treat it as component for application.
JSF provides inbuilt AJAX support. So, you can render application request to server side without refreshing the web page. JSF also support partial rendering by using AJAX.
JSF provides implicit protection against this when state is saved on the server and no stateless views are used, since a post-back must then contain a valid javax.faces.ViewState hidden parameter. Contrary to earlier versions, this value seems sufficiently random in modern JSF implementations. Note that stateless views and saving state on the client does not have this implicit protection.