4. Java Server Faces
JSF 2.1 (2010-10-22) — Current version. Second maintenance release of
2.0. Only very minor amount of spec changes.
JSF 2.0 (2009-06-28) — Major release for ease of use, enhanced
functionality, and performance. Coincides with Java EE 6.
JSF 1.2 (2006-05-11) — Many improvements to core systems and APIs.
Coincides with Java EE 5. Initial adoption into Java EE.
JSF 1.1 (2004-05-27) — (DEPRECATED) bug fix release. There were no
spec or HTML renderkit changes.
JSF 1.0 (2004-03-11) — (DEPRECATED) the initial release of the JSF
specification. Separate release that wasn't part of any Java EE/J2EE
release.
Page 4
5. Java Server Faces
JSRs correspondientes a Java Server Faces y sus diferentes versiones
JSR 127 (versión 1.0 y 1.1)
JSR 252 (versión 1.2 Se corresponde con JEE 5)
JSR 314 (versión 2.0 Se corresponde con JEE 6 y versión 2.1)
JSR 316 (JEE 6)
JSR 344 (versión 2.2 Estado: En progreso)
Page 5
7. Tips para el mejor aprovechamiento de las nuevas
características de Java Server Faces 2
Deshacerse de la configuración XML
Simplificación de la navegación
Uso de Groovy
Tomar ventaja del nuevo manejo de recursos
Page 7
8. Java Server Faces
La tecnología Java Server Faces establece los estándares para construir
interfaces de usuarios del lado del servidor.
La tecnología Java Server Faces provee lo siguiente
– Un conjunto de APIs para representar componentes de interfaz de usuario y
gestionar su estado, eventos y validaciones, definir reglas de navegación,
internacionalización y accesibilidad
– Una librería de tags para desarrollar las paginas web y conectar componentes
de interfaz de usuarios con objetos del lado del servidor
Page 8
9. Java Server Faces
La tecnología Java Server Faces permite realizar lo siguiente con un
mínimo esfuerzo:
– Desarrollar una pagina web.
– Colocar componentes UI en una pagina web.
– Enlazar componentes UI con datos del lado del servidor.
– Enlazar los eventos generados sobre los componentes UI con código del lado
del servidor.
– Guardar y recuperar el estado de la aplicación mas allá de la vida de los
request realizados al servidor
– Reusar y extender componentes UI a través de la customización
Page 9
10. Componentes típicos de una aplicación Java Server
Faces
Un conjunto de paginas web
Un conjunto de tags de componentes UI para agregar a las paginas web
Un conjunto de managed beans
Un archivo web.xml
Opcionalmente, uno o mas archivos de configuración tales como faces-
config.xml
Opcionalmente, un conjunto de objetos customizados como por ejemplo
componentes, validators, converters, o listeners
Un conjunto de tags para representar objetos customizados en las
paginas web
Page 10
11. Interacción entre el cliente y el servidor
La pagina web myfacelet.xhtml es construida usando tags de
componentes UI de Java Server Faces
myUI es la representación de la pagina web en el servidor
Ante la petición del cliente la vista es renderizada como un html
Renderización es el proceso mediante el cual el contenedor web genera
una salida html o xhtml a partir de la representación de la pagina web en
el servidor
Page 11
12. Beneficios de Java Server Faces
Provee una separación limpia entre la capa de representación y
comportamiento de una pagina web.
Separación clara de roles entre diseñadores y programadores
Es posible usar diferentes tecnologías para la capa de presentación
Creación y uso de componentes UI customizados
La tecnología Facelets, disponible como parte de JSF 2.0 se ha
convertido en opción preferida para la implementación de la capa de
presentación.
Page 12
13. Crear una aplicación Java Server Faces simple
Crear una aplicación Java Server Faces típicamente implica realizar las
siguientes tareas:
– Desarrollo de managed beans
– Desarrollar paginas web
– Mapear la instancia de FacesServlet
Page 13
14. Managed Beans
Un managed bean es un objeto liviano gestionado por el web container.
Los componentes UI de la pagina web están asociados con managed
beans que proveen la lógica de la aplicación.
Ejemplo:
Page 14
16. Pagina Web
En una aplicación JSF típica las paginas web son creadas como xhtml
XHTML es la evolución de HTML.
XHTML tiene como objetivo es mantener una clara separación entre la
información y la forma de presentarla
La sintaxis de XHTML es mas estricta que la de HTML
La pagina web se enlaza con los managed beans a través de expresiones
EL
Page 16
17. Mapear la instancia de FacesServlet
Es necesario mapear la instancia del servlet Faces Servlet en
el archivo web.xml
Page 17
18. Ciclo de vida
Toda aplicación web tiene un ciclo de vida para un request
Por defecto JSF maneja la gran parte del ciclo de vida de un request
Sin embargo JSF ofrece etapas del ciclo de vida de un request en donde es posible
realizar acciones customizadas.
No es necesario conocer el ciclo de vida de JSF para un desarrollador pero su
entendimiento permite realizar aplicaciones mas complejas.
Page 18
19. Facelets
La tecnología JSP fue usada anteriormente como la tecnología por
defecto para la capa de presentación en JSF
A partir de JSF 2.0 la tecnología Facelets es la tecnología por defecto a
utilizar para la capa de presentación de aplicaciones JSF
Page 19
20. Que es Facelets?
Facelets es un lenguaje de declaración de vista poderoso pero liviano
Las características de facelets son las siguientes:
– Uso de XHTML
– Soporte para librerías de tags Facelets
– Soporte para librerías de tags JSTL
– Soporte para el lenguaje de expresión EL
– Templates de componentes y paginas
Ventajas del uso de Facelets en aplicaciones de gran escala
– Soporte para el reuso de código a través de templates de componentes y
paginas
– Funcionalidad extensible para componentes UI y objetos del lado del servidor a
través de la customización
– Tiempo de compilación rápido
– Validación de expresiones EL en tiempo de compilación
– Alto rendimiento en el proceso de renderización
Page 20
22. Creación de una aplicación Facelets
Pasos generales para la creación de una aplicación JSF
– Desarrollo de managed beans
– Desarrollo de paginas web usando tags
– Definición de navegación de paginas
– Mapeo de la instancia FacesServlet
– Agregar declaraciones de managed beans
Page 22
23. Creación de una aplicación Facelets
Aplicación ―Adivine el numero‖
Page 23
24. Desarrollo de managed beans
Cada pagina web de la aplicación se
conecta a uno o mas managed beans
Los managed beans definen
propiedades y métodos relacionados
con los componentes de la pagina
web.
La creación de managed beans suele
ser responsabilidad del arquitecto
La implementación del comportamiento
o lógica de negocios en los managed
beans suele ser responsabilidad de los
desarrolladores
Page 24
25. Desarrollo de paginas web
La creación de las paginas suele ser responsabilidad de los arquitectos.
El diseño de las paginas web es responsabilidad de los desarrolladores
El diseño involucra agregar tags, enlazar managed beans con componentes
UI y registrar Converters, Validators o Listeners
En la sección 1 se definió el tipo de contenido para la pagina web, en este
caso XHTML
En la sección 2 se define el idioma y las librerias de tags que de van a usar
1
2
Page 25
30. Recursos
Los recursos web son todos aquellos artefactos de software que una
aplicación web requiere para rendirizar una pagina web de manera
completa, estos recursos comprenden, imágenes, scripts, librerías de
componentes, etc.
Los recursos web deben estar ubicados en una ubicación estándar que
puede ser cualquiera de las siguientes:
– web-application-root/resources/resource-identifier
– META-INF/resources/
– META-INF/resources/resource-identifier
Java Server Faces buscara los recursos web en las ubicaciones
anteriores en tiempo de ejecución
Page 30