Facelets es un sistema de plantillas, parecido a Tiles para Strut
Estas son las propiedades más interesantes de Facelets:
- Trabajo basado en plantillas.
- Fácil composición de componentes.
- Creación de etiquetas lógicas a la medida.
- Funciones para expresiones.
- Desarrollo amigable para el diseñador gráfico.
- Creación de librerías de componentes.
Para empezar a entender Facelets es interesante hacer la sigiente comparación con JSP:
- JSP es un lenguaje de plantillas para producir un servlet (el body de la página JSP sería el equivalente de los métos doGet() y doPost() del servlet).
- Las etiquetas JSF (como pueden ser f:view y h:form) simplemente son llamadas a los componentes JSF correspondientes, de forma que sean renderizados en su estado actual.
- Facelets es un lenguaje de plantillas para construir un árbol de componentes, no un servlet. Esto permite una gran reutilización, de forma que se pueden definir componentes como composición de otros componentes. Además, Facelets se ha creado teniendo en cuenta el ciclo de vida JSF, al contrario de JSP, donde el ciclo de vida del servlet producido es independiente del ciclo de vida de JSF.