[ES] Desarrollo de aplicaciones con Java Server Faces
1. Let's Rock Java
Fundamentos de Java Enterprise Edition
con JDeveloper
Eudris Cabrera Rodriguez
Ingeniero Telemático
Senior Software Developer
Skype:eudriscabrera
LinkedIn:http://www.linkedin.com/in/eudriscabrera
Diciembre 2011, Santiago de los Caballeros, R. D.
3. Agenda
○ Introducción a JSF 2.0
○ Diferentes implementaciones de JSF
○ Implementación de Ajax con JSF
○ Introdución a Facelets
4. Introducción a JSF 2.0
JavaServer Faces 2.0 (JSF) es la nueva tecnología estándar
para el desarrollo de interfaz de usuario web de Java
Enterprise Edition (Java EE) 6. Se trata de una actualización
a la versión 1.2 de la misma tecnología.
Esta revisión introduce dos temas clave para los
desarrolladores de aplicaciones de Internet enriquecidas
(RIA).
El primero de ellos, es la integración nativa de JavaScript
asíncrono con XML (Ajax) en el ciclo de vida de JavaServer
Faces y el segundo, es el cambio de Java Server Pages
(JSP) para Facelets como lenguaje por defecto para
declaración de vista.
5. Introducción a JSF 2.0
El estándar JSF 2.0, ocupa gran parte de las especificaciones de
Java Enterprise Edition 6, fue desarrollada por el grupo de expertos
JSR-314 (EG) en el Java Community Process (JCP), bajo la
dirección de Sun. El EG fue compuesto por miembros de todos los
actores clave en la comunidad de JSF, incluyendo los principales
desarrolladores de Oracle ADF Faces y los del framework Apache
Trinidad.
Muchas de las nuevas características de JSF 2.0 tiene una
implementación equivalente en uno o más de los framework o
conjuntos de componentes JSF que han empujado más allá de las
limitaciones de la JSF 1.2. Con esto en mente, es justo decir que JSF
2.0 es una estandarización de las mejores de estas características
extendidas.
8. Introducción a JSF 2.0
Que es una aplicación JavaServer Faces ?.
La funcionalidad proporcionada por una aplicación JavaServer
Faces es similar a la de cualquier otra aplicación Web Java. Una
típica aplicación JavaServer Faces incluye las siguientes partes:
● Un conjunto de páginas web en la que los componentes se
colocan.
● Un conjunto de etiquetas para agregar componentes a la página
web.
● Un conjunto de backing beans, que son componentes JavaBeans
que definen las propiedades y funciones de los componentes en
una página.
● Un descriptor de despliegue (web.xml).
9. Introducción a JSF 2.0
Opcionalmente, uno o más archivos de configuración de recursos de
aplicación como un archivo faces-config.xml, que se puede utilizar
para definir las reglas de navegación de la página y configurar los
beans y otros objetos personalizados, como los componentes
personalizados.
Opcionalmente, un conjunto de objetos personalizados creados por
el desarrollador de la aplicación. Estos objetos pueden incluir
componentes personalizados, validadores, convertidores, o los
oyentes.
Un conjunto de etiquetas personalizadas para representar los objetos
personalizados en la página.
10. Introducción a JSF 2.0
Beneficios de la tecnología JavaServer Faces
Una de las mayores ventajas de la tecnología JavaServer Faces es
que ofrece una separación clara entre el comportamiento y la
presentación de las aplicaciones web.
Una aplicación JavaServer Faces puede corresponder las peticiones
HTTP para la gestión de eventos de componentes específicos y
gestionar los componentes como objetos con estado en el servidor.
La tecnología JavaServer Faces permite crear aplicaciones web que
implementan la separación del comportamiento y la presentación
que se ofrece tradicionalmente por arquitecturas UI del lado del
cliente.
11. Introducción a JSF 2.0
La separación de la lógica de presentación también permite que
cada miembro de un equipo de desarrollo de aplicaciones web
pueda concentrarse en una sola pieza del proceso de desarrollo,
y proporciona un modelo de programación sencillo para vincular
las piezas.
Por ejemplo, los autores de páginas sin conocimientos de
programación puede utilizar las etiquetas de la tecnología
JavaServer Faces en una página web para vincular a los objetos
del lado del servidor sin necesidad de escribir ningún script.
Otro objetivo importante de la tecnología JavaServer Faces es
manejar componentes y conceptos relacionados a la capa web
sin limitar a una tecnología de scripting o lenguaje de marcas.
13. Introducción a JSF 2.0
Creando una aplicación JavaServer Faces
La tecnología JavaServer Faces proporciona un proceso fácil y fácil
de usar para crear aplicaciones web.
El desarrollo de una sencilla aplicación JavaServer Faces por lo
general requiere de las siguientes tareas:
● El desarrollo de backing beans (beans de respaldo).
● Agregar declaraciones managed bean.
● La creación de páginas web con etiquetas de componentes.
● Mapeo de la instancia FacesServlet.
16. Diferentes implementaciones de JSF
Versiones
● JSF 1.0 (11-03-2004) - lanzamiento inicial de las
especificaciones de JSF.
● JSF 1.1 (27-05-2004) - lanzamiento que solucionaba errores. Sin
cambios en las especificaciones ni en el renderkit de HTML.
● JSF 1.2 (11-05-2006) - lanzamiento con mejoras y corrección de
errores.
● JSF 2.0 (12-08-2009) - introduce nuevas funcionalidades y se
convierte en el estandar para desarrollar aplicaciones web en
JEE.
● JSF 2.1 (2010-10-22) — Versión actual. Segunda versión de
mantenimiento de 2,0. Solamente una cantidad muy pequeña de
los cambios de especificaciones.
17. Diferentes implementaciones de JSF
Implementaciones
Las principales implementaciones de JSF son:
● JSF Reference Implementation de Sun Microsystems.
● MyFaces proyecto de Apache Software Foundation.
18. Implementación de Ajax con JSF
Extensiones
Algunas extensiones a JSF son:
● Rich Faces Agrega componentes visuales y soporte para AJAX.
● ICEfaces Contiene diversos componentes para interfaces de usuarios
más enriquecidas, tales como editores de texto enriquecidos,
reproductores de multimedia, entre otros.
● Oracle ADF Faces Rich Client, Oracle Application Development
Framework.
● jQuery4jsf Contiene diversos componentes sobre la base de uno de
los más populares framework javascript jQuery.
● PrimeFaces
● OpenFaces Librería open source que contiene diferentes componentes
JSF, un Framework Ajax y un Framework de validación por parte del
cliente.
19. Introdución a Facelets
El término Facelets es el lenguaje de declaración de vista para la
tecnología JavaServer Faces.
A partir de JavaServer Faces 2.0, Facelets es una parte de la
especificación Java Server Faces y también la tecnología de
presentación preferida para la construcción de aplicaciones basadas
en JavaServer Faces.
20. Qué es Facelets ?.
Facelets es un lenguaje potente, pero ligero lenguaje de
declaración de página que se utiliza para construir vista
JavaServer Faces mediante el uso de plantillas estilo
HTML y la construcción de componentes.
Las características de Facelets son las siguientes:
○ El uso de XHTML para crear páginas web.
○ El apoyo a las bibliotecas de etiquetas Facelets,
además de JavaServer Faces y las bibliotecas JSTL.
○ Apoyo a la Expression Language (EL).
○ plantillas para los componentes y las páginas.
21. Qué es Facelets ?.
Facelets soporta estas características a través de la
reutilización de código y por la facilidad de desarrollo, que
son consideraciones importantes para los desarrolladores a
adoptar JavaServer Faces como la plataforma de
presentación de proyectos a gran escala.
23. Las ventajas de Facelets son los siguientes:
○ Apoyo a la reutilización de código a través de plantillas
y componentes de material compuesto.
○ Funciones de ampliación de los componentes y otros
objetos del lado del servidor a través de la
personalización.
○ Reducción del tiempo de compilación.
○ EL tiempo de compilación de validación.
○ Prestacion de alto rendimiento.
En resumen, el uso de Facelets reduce el tiempo y el
esfuerzo que debe ser gastado en el desarrollo y
despliegue.
24. Creando una aplicación simple con Facelets
El desarrollo de una sencilla aplicación JavaServer Faces
utilizando la tecnología de Facelets, por lo general requiere
de las siguientes tareas:
● El desarrollo de backing beans (beans de respaldo).
● La creación de las páginas utilizando componentes
● Definición de navegación en la página
● Mapeo de la instancia FacesServlet
● Agregar declaraciones managed bean.
26. Templating (Plantillas)
JavaServer Faces 2.0 proporciona las herramientas para
implementar interfaces de usuario que son fáciles de
extender y reutilizar.
Templating es una característica útil disponible con Facelets
que le permite crear una página que servirá como base o
modelo para las otras páginas de una aplicación.
Mediante el uso de plantillas, puede reutilizar el código y
evitar volver a crear páginas de similar construcción.
Templating también ayuda a mantener una apariencia
estándar de una aplicación con un gran número de páginas.
27. Facelets Templating Tags
ui:component
Define un componente que se crea y se agrega al árbol de
componentes.
ui:composition
Define una composición de página que utiliza opcionalmente una
plantilla.Contenido fuera de este etiqueta es ignorado.
ui:debug
define un componente de depuración que se crea y se agrega al árbol
de componentes.
ui:define
Define el contenido que se inserta en una página de una plantilla.
28. Facelets Templating Tags
ui:decorate
Similar a la etiqueta de composición, pero no desprecia el
contenido fuera de esta etiqueta.
ui:fragment
Similar a la etiqueta del componente, pero no desprecia el
contenido fuera de esta etiqueta.
ui:include
Encapsular y reutilizar el contenido de varias páginas.
ui:insert
Inserta el contenido en una plantilla.
29. Facelets Templating Tags
ui:param
Se utiliza para pasar parámetros a un archivo incluido.
ui:repeat
Se utiliza como una alternativa para las etiquetas de lazo,
como c: forEach o h: dataTable.
ui:remove
Elimina el contenido de una página.
30. Facelets Templating Tags
La biblioteca de etiquetas Facelets incluye la principal
etiqueta para templating <ui:insert> .
Una página de la plantilla que se crea con esta etiqueta,
permite definir una estructura predeterminada de una página.
Una página de la plantilla se utiliza como plantilla para otras
páginas, por lo general se conoce como las páginas del
cliente.
32. Facelets Templating Tags
La página de ejemplo define una página XHTML que se
divide en tres secciones: una parte superior, una sección de
la izquierda, y una sección principal.
Las secciones tienen hojas de estilo asociadas con ellos. La
misma estructura que puede ser reutilizado para las demás
páginas de la aplicación.
La página del cliente llama a la plantilla mediante la etiqueta
<ui:composition>. En el siguiente ejemplo, una página de
cliente llamado templateclient.xhtml invoca a la página de la
plantilla llamada template.xhtml, del ejemplo anterior.
Una página del cliente permite que el contenido se insertará
con la ayuda de la etiqueta <ui:define>.
35. Composite Components (Componentes Compuestos)
La tecnología JavaServer Faces ofrece el concepto de los
componentes de material compuesto con Facelets.
Un componente compuesto se puede considerar como un
tipo especial de plantilla que actúa como un componente.
Cualquier componente esencialmente es una pieza de código
reutilizable que es capaz de una cierta funcionalidad.
Por ejemplo, un componente inputText es capaz de aceptar la
entrada del usuario.
36. Composite Components (Componentes Compuestos)
Un componente también tiene validadores, conversores, y los
oyentes (validators, converters, and listeners) que se le
atribuye a realizar ciertas acciones definidas.
Un componente compuesto es un componente que consiste
en una colección de marcas de revisión y otros componentes
ya existentes. Se trata de un componente reutilizable, creado
por el usuario, que es capaz de una ejercer una funcionalidad
personalizada, que se define y puede tener validadores,
conversores, y los oyentes que se le atribuye como cualquier
otro componente JavaServer Faces.
Con Facelets, cualquier página XHTML que se inserta con
marcas y otros componentes se pueden convertir en un
componente compuesto.