JSF UI components are configurable, reusable elements that compose the user interfaces of JSF applications. A component can be simple, such as a button, or compound, such as a table, which can be composed of several other components.
The component architecture of JSF technology includes:
A set of UIComponent classes for specifying the state and behavior of UI components.
A rendering model that defines the several ways of rendering the components.
An event and listener model that defines how to handle component events.
A conversion model that defines how data converter are registered onto a component.
A validation model that defines how validators are registered onto a component.