JavaServer Faces (JSF abbreviated) is a Java framework for developing Web applications.
Unlike other traditional MVC frameworks based on actions, JSF is based on the notion of components, comparable to that of Swing or SWT, where the state of a component is registered when rendering the page, to then be restored back from the query.
JSF is agnostic to the presentation technology. It uses Facelets by default since version 2.0, but can be used with other technologies such as JSP (which was used up to version 1.2) or XUL.
JSF consists principally of:
- A set of APIs for representing and managing components, their state of events, input validation and output conversion, internationalization and accessibility as well as the inter-view navigation
- Two sets of standard components (text display, input text, tables, check box, etc.): html and core
- Two libraries of JSP tags (one for each set of components) to allow the use of JSPs to construct the views of JSF
- A server-side event model
- The Managed-Beans that form the JSF control layer
- Unified Expression Language (abbreviated as EL) or unified language expressions for JSF and JSP 2.0. It used to link the components to managed-beans
Games of additional components
Both sets of JSF standard components are too limited and insufficient for enterprise application development. It is possible therefore to use additional components of games that offer new rich components.
- Primefaces, a set of open-source components that support Ajax, JSF 2, Push
- ICEfaces, a set of open-source components supporting Ajax, now since the version 3 becoming a mere copy of old components Primefaces
- jBoss RichFaces and Ajax4JSF, a set of open-source components that support Ajax (End of Life schedulded)
- Apache Tomahawk, a set of rich components, open source
- RCFaces, a set of rich AJAX components and open source