La tecnología JavaServer Faces proporciona una arquitectura de componentes rica y flexible. Incluye un conjunto de clases de componentes UI como UICommand, UIForm y UIInput que descienden de UIComponentBase. Estas clases se pueden incluir en páginas usando etiquetas como <h:form>, <h:commandButton> y <h:inputText>.