
In September 2017, Oracle announced its intention to transition Java EE to the Eclipse Foundation. Among several hundred small repairs and larger updates, JSF 2.3 deprecates managed bean annotations in favor of CDI, which I'll introduce later in this tutorial. Released in March 2017, JSF 2.3 was intentionally designed to modernize JSF. While the schedule for future development is unclear, JSF 2.3 gives developers plenty to work with while we wait. One of these is PrimeFaces, which we explore in this tutorial. The JSF specification has also spawned a wealth of frameworks and libraries, which have kept pace with recent client-side improvements. Still, JavaServer Faces remains the Java standard, especially for large-scale, Java enterprise development. Long popular, JSF has recently faced competition from Java-compatible web frameworks, including client-side JavaScript frameworks.

Examples include new features in JSF 2.3, and we'll use PrimeFaces for our component library. Simple examples introduce JSF's MVC architecture, event model, and component library. This article presents a snapshot of JSF's approach to component-based UI development for Java web applications.

The key idea to a framework like JSF is to encapsulate (or wrap) client-side technologies like HTML, CSS, and JavaScript, allowing developers to build web interfaces without much interaction with these technologies.
#Primefaces vs icefaces full#
JSF components are backed by Java objects, which are independent of the HTML and have the full range of Java abilities, including accessing remote APIs and databases. Unlike JSP, which is essentially an HTML page imbued with server-side capabilities, JSF is an XML document that represents formal components in a logical tree. Like JavaServer Pages (JSP), JSF allows access to server-side data and logic. JavaServer Faces (JSF) is the Java standard technology for building component-based, event-oriented web interfaces.
