JSF provide a clean and standard architecture of Java framework for building a web application. It separate the areas of concern involved in building and running a GUI-based application. But the JSF provide 8 main design goals-
- Define a set of simple, lightweight Java base classes for UI components, component state, and input events. These classes will address UI lifecycle issues, notably managing a componentís persistent state for the lifetime of its page.
- Create a standard UI component framework that can be leveraged by development tools to make it easier for tool users to both create high-quality UIs and manage the UIís connections to application behavior.
- Provide a set of common UI components, including the standard HTML form input elements. These components will be derived from the simple set of base classes (outlined in #1) that can be used to define new components.
- Provide a JavaBeans model for dispatching events from client-side UI controls to server-side application behavior.
- Specify a model for internationalization and localization of the UI
- Define APIs for input validation, including support for client-side validation.
- Provide for automatic generation of appropriate output for the target client, taking into account all available client configuration data, such as the browser version.
- Provide for automatic generation of output containing required hooks for supporting accessibility, as defined by the Web Accessibility Initiative (WAI).