Version 2

    JavaServer Faces (JSF) is a user interface (UI) framework for Java web applications. It

    is designed to significantly ease the burden of writing and maintaining applications

    that run on a Java application server and render their UIs back to a target client. JSF

    provides ease-of-use in the following ways:

     

    • Makes it easy to construct a UI from a set of reusable UI components

    • Simplifies migration of application data to and from the UI

    • Helps manage UI state across server requests

    • Provides a simple model for wiring client-generated events to server-side application code

    • Allows custom UI components to be easily built and re-used

     

     

    Most importantly, JSF establishes standards which are designed to be leveraged by

    tools to provide a developer experience which is accessible to a wide variety of

    developer types, ranging from corporate developers to systems programmers. A

    "corporate developer" is characterized as an individual who is proficient in writing

    procedural code and business logic, but is not necessarily skilled in object-oriented

    programming. A "systems programmer" understands object-oriented fundamentals,

    including abstraction and designing for re-use. A corporate developer typically

    relies on tools for development, while a system programmer may define his or her

    tool as a text editor for writing code.

    Therefore, JSF is designed to be tooled, but also exposes the framework and

    programming model as APIs so that it can be used outside of tools, as is sometimes

    required by systems programmers.

     

    (Quote from the JavaServer Faces Specification)