JavaServer Faces (JSF) is a Java-based Web application framework intended to simplify development of user interfaces for Java EE applications. A web application framework is a Software framework that is designed to support the development of dynamic websites, Web applications and The user interface (or Human Computer Interface) is the aggregate of means by which people&mdash the users '&mdash interact with the System Java Platform Enterprise Edition or Java EE is a widely used platform for server programming in the Java programming language Unlike other traditional request-driven MVC web frameworks, JSF uses a component-based approach. Model-view-controller ( MVC) is an architectural pattern used in Software engineering. The state of UI components is saved when the client requests a new page and then is restored when the request is returned. Out of the box, JSF uses JavaServer Pages (JSP) for its display technology, but JSF can also accommodate other display technologies (such as XUL). JavaServer Pages ( JSP) is a Java technology that allows Software developers to dynamically generate HTML, XML or other types of documents XUL (pronounced zool ( the XML User Interface Language, an XML User interface markup language developed by the Mozilla project JSF includes:
The JSF specification was developed under the Java Community Process as JSR 127, which defined JSF 1. The Java Community Process or JCP, established in 1998, is a formalized process which allows interested parties to be involved in the definition of future versions 0 and 1. 1, and JSR 252 which defined JSF 1. 2. Upcoming JSF 2. 0 is being developed as JSR 314.
Contents |
Struts is a popular Model 2 MVC framework from the Apache Software Foundation. In the design of Java Web applications there are two commonly-used design models referred to as Model 1 and Model 2. Model-view-controller ( MVC) is an architectural pattern used in Software engineering. It provides page-at-a-time MVC and does not have a component model in the style of JSF. Pages are mapped to models with a dispatch servlet (controller) piping input to actions. Struts applications use JSPs to render views and are amenable to mix-and-match jsp taglib use. (See also Apache Beehive)
WebObjects is the earliest known web-application framework and was originally developed by NeXT Software, Inc. then acquired by Apple Computer when it acquired NeXT. WebObjects is a Java web Application server from Apple Inc, and a Web application framework that runs on this server NeXT Computer Inc (later NeXT Software Inc) was an American Computer company headquartered in Redwood City, California that Apple Inc, ( formerly Apple Computer Inc, is an American Multinational corporation with a focus on designing and manufacturing Consumer electronics It contains an MVC architecture with a component and event model and lifecycle similar to JSF. It is deployable without J2EE (its original configuration), or can be deployed in a servlet container — its dispatcher object acting as the entry-point of a J2EE web application. Unlike JSF's default case, components are not defined in JSP files but are in . wo directories containing any or all of html/xml/wml template files, a . wod file to map fields and actions to Java code, and a . java class. A template file provides the rendering/layout and may include other WebObjects components, rather than the delegated RenderKit approach used by default in JSF. It is a halfway-point between the delegated and directly-rendered approaches used in JSF.
WebObjects also includes a layered architecture with one of the earliest Object-Relational Mapping frameworks, Enterprise Objects Framework. Object-relational mapping (aka ORM, O/RM, and O/R mapping) is a programming technique for converting data between incompatible Type systems The Enterprise Objects Framework (or more commonly EOF) was introduced by NeXT in 1994 as a pioneering Object-relational mapping product for its NeXTSTEP
Wotonomy is a clean-room, open-source re-implementation of the WebObjects frameworks licensed under LGPL. The GNU Lesser General Public License (formerly the GNU Library General Public License) or LGPL is a Free software license published by the Free Software It attempts to implement all parts of WebObjects, and has implemented the whole MVC web-GUI stack. As a clone of WebObjects, it differs from JSF in identical ways, except where it is incomplete.
Tapestry is an open-source framework for creating dynamic, robust, scalable web applications in Java. Tapestry is an Object-oriented Java Web application framework to implement applications in accordance with the Model-view-controller design Tapestry builds upon the standard Java Servlet API, and so it works in any servlet container or application server. Unlike JSF, Tapestry does not use JSP as the default view technology — instead preferring an alternate templating engine that allows for easy html preview and editing (similar to the JSF-based Facelets).
JSF features a component based approach to WebApplication development similar to ASP. ASPNET is a Web application framework developed and marketed by Microsoft, that Programmers can use to build dynamic Web sites Web applications NET from Microsoft. Microsoft Corporation is an American multinational Computer technology Corporation, which rose to dominate the Home computer In ASP. NET v1, component rendering code was bundled with the UI component, unlike JSF, where rendering and component interfaces can be separated, thus allowing for customization of the renderer. ASP. NET v2 introduced the control adapter framework allowing the default rendering to be overridden by third-party code.
Business code is connected to the UI components by subscribing to events generated by the components and stored in a separate file ("code behind"). In Computer programming, event-driven programming or event-based programming is a Programming paradigm in which the flow of the program is determined Thus a typical ASP. NET page consists of a (HTML) file describing the visual page layout (design), and a file with the page logic (code). HTML, an initialism of HyperText Markup Language, is the predominant Markup language for Web pages It provides a means to describe the structure Both files are treated as one single entity by the Microsoft development tools.
According to the author of the book Core JSF, JSF offers a means for Java to compete with ASP. NET/Visual Studio in the area of Rapid application development (RAD). Rapid application development ( RAD) is a Software development process, which involves iterative development and the construction of Prototypes The addition of the Sun Java Studio Creator IDE provides a RAD environment similar to Visual Studio 2005, potentially lowering development cost and other barriers to entry. Rapid application development ( RAD) is a Software development process, which involves iterative development and the construction of Prototypes
JSF is often mentioned together with Ajax, a Rich Internet application technology. Rich Internet applications (RIAs are Web applications that have the features and functionality of traditional desktop applications. Ajax is a combination of technologies that makes it possible to create richer user interfaces. The user interface components in the JSF reference implementation and MyFaces were originally developed in HTML. Because JSF supports multiple output formats, Ajax-enabled components can easily be added to improve the quality of JSF-based user interfaces. The JSF 2. 0 specification intends to improve support for Ajax by allowing UI logic to run partly on the client and not only on the server, and by providing support for graceful degradation when JavaScript is disabled in the browser. JavaScript is a Scripting language most often used for Client-side web development
The following companies and projects offer Ajax-based JSF implementations or blueprints: