42
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.

[ES] Desarrollo de aplicaciones con Java Server Faces

Embed Size (px)

DESCRIPTION

Conocer los conceptos avanzados sobre el desarrollo de aplicaciones empresariales usando Java Server Faces (JSF).

Citation preview

Page 1: [ES] Desarrollo de aplicaciones con Java Server  Faces

Let's Rock Java

Fundamentos de Java Enterprise Edition con JDeveloper

Eudris Cabrera Rodriguez

Ingeniero TelemáticoSenior Software DeveloperSkype:eudriscabreraLinkedIn:http://www.linkedin.com/in/eudriscabrera Diciembre 2011, Santiago de los Caballeros, R. D.

Page 2: [ES] Desarrollo de aplicaciones con Java Server  Faces

Objetivos

Aprender los conceptos fundamentales sobre el desarrollo de aplicaciones empresariales usando Java Server Faces (JSF).

Page 3: [ES] Desarrollo de aplicaciones con Java Server  Faces

Agenda○ Introducción a JSF 2.0○ Diferentes implementaciones de JSF○ Implementación de Ajax con JSF○ Introdución a Facelets

Page 4: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 5: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 6: [ES] Desarrollo de aplicaciones con Java Server  Faces

Introducción a JSF 2.0

Page 7: [ES] Desarrollo de aplicaciones con Java Server  Faces

Introducción a JSF 2.0

Page 8: [ES] Desarrollo de aplicaciones con Java Server  Faces

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).

Page 9: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 10: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 11: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 12: [ES] Desarrollo de aplicaciones con Java Server  Faces

Introducción a JSF 2.0

Page 13: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 14: [ES] Desarrollo de aplicaciones con Java Server  Faces

Introducción a JSF 2.0

Estructura de una aplicación JavaServer Faces

Page 15: [ES] Desarrollo de aplicaciones con Java Server  Faces

Creando una aplicación JavaServer Faces

Page 16: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 17: [ES] Desarrollo de aplicaciones con Java Server  Faces

Diferentes implementaciones de JSF

Implementaciones

Las principales implementaciones de JSF son:

● JSF Reference Implementation de Sun Microsystems.● MyFaces proyecto de Apache Software Foundation.

Page 18: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 19: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 20: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 21: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 22: [ES] Desarrollo de aplicaciones con Java Server  Faces

Ciclo de una aplicación con Facelets

Page 23: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 24: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 25: [ES] Desarrollo de aplicaciones con Java Server  Faces

Creando una aplicación simple con Facelets

Page 26: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 27: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 28: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 29: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 30: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 31: [ES] Desarrollo de aplicaciones con Java Server  Faces

Facelets Templating

Page 32: [ES] Desarrollo de aplicaciones con Java Server  Faces

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>.

Page 33: [ES] Desarrollo de aplicaciones con Java Server  Faces

Facelets Templating

Page 34: [ES] Desarrollo de aplicaciones con Java Server  Faces

Creando una aplicación simple con Facelets Template

Page 35: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 36: [ES] Desarrollo de aplicaciones con Java Server  Faces

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.

Page 37: [ES] Desarrollo de aplicaciones con Java Server  Faces

Composite Components (Componentes Compuestos)

Page 38: [ES] Desarrollo de aplicaciones con Java Server  Faces

Composite Components (Componentes Compuestos)

Page 39: [ES] Desarrollo de aplicaciones con Java Server  Faces

Composite Components (Componentes Compuestos)

Page 40: [ES] Desarrollo de aplicaciones con Java Server  Faces

Fuentes Bibliográficas

http://download.oracle.com/docs/cd/E17410_01/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/

http://download.oracle.com/docs/cd/E17410_01/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/.

https://javaserverfaces.dev.java.net/nonav/rlnotes/2.0.0/index.html

http://java.sun.com/javaee/javaserverfaces/index.jsp

Page 41: [ES] Desarrollo de aplicaciones con Java Server  Faces

PREGUNTAS ?

Page 42: [ES] Desarrollo de aplicaciones con Java Server  Faces

WE ROCK JAVA !!!