*** Welcome to piglix ***

JavaServer Faces

JavaServer Faces
20110510-jsf-logo.tiff
Stable release
2.2.14 (Mojarra Reference Implementation) / November 15, 2016 (2016-11-15)
Preview release
2.3.0 Milestone 3 (Mojarra Reference Implementation) / July 21, 2015 (2015-07-21)
Written in Java
Type Web application framework
Website javaserverfaces.java.net

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. Other view technologies such as XUL or plain Java can also be employed. In contrast, JSF 1.x uses JavaServer Pages (JSP) as its default templating system.

In 2001, the original Java Specification Request (JSR) for the technology that ultimately became JavaServer Faces proposed developing a package with the name javax.servlet.ui By June 2001, JavaWorld would report on Amy Fowler's team's design of "the JavaServer Faces API" (aka "Moonwalk") – "an application framework for creating Web-based user interfaces".

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. Either the client or the server side can save objects and states.

JSF is often used together with Ajax, a Rich Internet application technology. Ajax is a combination of technologies that make it possible to create rich user interfaces. The user interface components in Mojarra (the JSF reference implementation) and Apache MyFaces were originally developed for HTML only, and Ajax had to be added via JavaScript. This has changed, however:


...
Wikipedia

...