Anda di halaman 1dari 7
JSF ­ Java Server Faces Por Jos é Miguel Loor nDeveloper C í a. Ltda.

JSF ­ Java Server Faces

Por José Miguel Loor

nDeveloper C ía. Ltda.

Quito, Ecuador

Jos é Miguel Loor nDeveloper C í a. Ltda. Quito, Ecuador Miembro del Parque Tecnol ó

Miembro del Parque Tecnológico de Software de Quito | Hernández de Girón Oe4­175y Vasco de Contreras| +593 (2) 3319­027 / 3319­531 | Quito ­ Ecuador

de Quito | Hern á ndez de Gir ó n Oe4­175y Vasco de Contreras| +593 (2)
Í ndice de Contenidos 1. ¿Qu é es JSF? 3 2. ¿Hacia d ó nde

Índice de Contenidos

1. ¿Qu é es JSF?

3

2. ¿Hacia dó nde está dirigido JSF?

3

3. Componentes de JSF

4

3.1 Managed Bean

4

3.2 Backing Bean

4

4. Navigation Rules

5

5. Render Kits

5

Ejemplo de una aplicaci ó n utilizando componentes JSF

6

5.1 EIS Tier

6

5.2 Integration Tier

6

Business Logic Tier

7

Presentation Tier

7

6 Business Logic Tier 7 Presentation Tier 7 Miembro del Parque Tecnol ó gico de Software

Miembro del Parque Tecnológico de Software de Quito | Hernández de Girón Oe4­175y Vasco de Contreras| +593 (2) 3319­027 / 3319­531 | Quito ­ Ecuador

de Quito | Hern á ndez de Gir ó n Oe4­175y Vasco de Contreras| +593 (2)
1. ¿Qu é es JSF? Java Server Faces es un framework o ambiente de trabajo,

1. ¿Qué es JSF?

Java Server Faces es un framework o ambiente de trabajo, destinado a facilitar la construcción y desarrollo de interfaces para aplicaciones basadas en entornos Web.

JSF tiene la función de proveer un grupo muy extenso de herramientas pre desarrolladas para facilitar la creación de interfaces; herramientas tales como: botones, cajas de texto, tablas de datos, etc. Similar a los objetos empleados para la generación de aplicaciones de escritorio (aplicaciones Swing por ejemplo)

Uno de los puntos fuertes hacia los cuales se dirige la arquitectura JSF es la generación de interfaces que puedan ser consumidas por diferentes tipos de dispositivos clientes. De esta manera, la misma interface puede verse desde una PC de escritorio, o una Table PC o un PDA, sin tener que crear nuevas interfaces ni desarrollar diferentes procesos para cada uno de los ambientes antes mencionados.

Otra de las ventajas para los ambientes de desarrollo que presenta JSF es que muchos de los IDE's actuales utilizados para el desarrollo, incorporan muchos de los controles utilizados por el est ándar, de manera que el proceso de la generación de una interfaz de aplicación, puede ser llevado a cabo utilizando ambientes visuales, sin tener que escribir todo el código que se requiere para generar los controles necesarios.

2. ¿Hacia dónde est á dirigido JSF?

En un principio JSF estaba dirigido fundamentalmente a proveer un est ándar de controles para aplicaciones. Esto es, un grupo de herramientas predefinidas con comportamientos embebidos que fueran capaces de manipular datos implí citamente expresados en su implementación. Por ejemplo, una caja de texto que tuviera la capacidad de evaluar su contenido antes de que este participara en ningún otro esquema de comportamiento, o un botón que tuviera implí cito cierto comportamiento en su definición.

Las tareas del manejo de procesos, comunicación de componentes o acceso a orí genes de datos se manejaba dentro de otros frameworks o ambientes de trabajo, como podí an ser Struts o WebWorks. De esta manera JSF solo se encargaba de enmascarar la última porción del manejo de las entradas y salidas de la capa Request/Response de la comunicación HTTP de las aplicaciones basadas en ambientes Web.

Con el paso del tiempo, JSF ha ido proveyendo de soluciones para cada una de las partes involucradas en el proceso, como por ejemplo la capacidad de establecer comunicaciones con orí genes de datos que luego pueden ser manipulados desde las interfaces desarrolladas con los componentes de la aplicación.

desarrolladas con los componentes de la aplicaci ó n. Miembro del Parque Tecnol ó gico de

Miembro del Parque Tecnológico de Software de Quito | Hernández de Girón Oe4­175y Vasco de Contreras| +593 (2) 3319­027 / 3319­531 | Quito ­ Ecuador

de Quito | Hern á ndez de Gir ó n Oe4­175y Vasco de Contreras| +593 (2)
Esto no significa que JSF vaya a desplazar a otros frameworks. De hecho, el responsable

Esto no significa que JSF vaya a desplazar a otros frameworks. De hecho, el responsable del desarrollo del framework Struts ha participado activamente en el proyecto JSF desde sus inicios. Struts y JSF pueden combinarse para dotar a la aplicación de una extensa plataforma de desarrollo en donde todas las capas de la implementación tienen su espacio definido.

Como integrar JSF con otros frameworks dirigidos para aplicaciones basadas en Web es una consideración propia de cada caso; dependerá mucho del análisis de la aplicació n, de su tamaño y complejidad y de las necesidades de procesamiento que presente cada una. Podrí a decirse que para aplicaciones pequeñas con bajo nivel de complejidad puede usarse JSF por si solo y mientras m ás complejidad presente la aplicación, se puede ir añadiendo la capa extra de capacidad que provee el framework de Struts (u otro framework similar, actualmente se integra con Spring).

3. Componentes de JSF

JSF introduce 2 nuevos términos al mundo del desarrollo de aplicaciones para JAVA:

Managed Bean

Backing Bean

3.1 Managed Bean

Un Managed Bean es un objeto identificado para el ambiente de la aplicación, para el cual se describe:

Una identificación

Un alcance (scope) que puede ser: request, session, application, etc

Propiedades

3.2 Backing Bean

Un Backing Bean es usualmente un Bean común de java que sirve de soporte para un objeto manejado dentro de la aplicació n. Pongamos por ejemplo una página JSP en una aplicación orientada a web:

La página JSP est á especificada como un ManagedBean para la aplicación, con un identificador que la describe para toda la aplicación en general

En este archivo JSP se dibujan todos los controles necesarios para proveer a la página de funcionalidad

necesarios para proveer a la p á gina de funcionalidad Miembro del Parque Tecnol ó gico

Miembro del Parque Tecnológico de Software de Quito | Hernández de Girón Oe4­175y Vasco de Contreras| +593 (2) 3319­027 / 3319­531 | Quito ­ Ecuador

de Quito | Hern á ndez de Gir ó n Oe4­175y Vasco de Contreras| +593 (2)
∑ Esta p á gina tiene asociado un Backing Bean que es un Bean de

Esta página tiene asociado un Backing Bean que es un Bean de Java. En este Bean se codifican los comportamientos especí ficos asociados a cada control del Managed Bean representado por la página JSP.

La ventaja de los Backing Beans es que pueden ser compartidos por un mismo Managed Bean, de manera que para diferentes páginas se pueden agrupar comportamientos comunes en un mismo Bean que se comparte con ambos.

4. Navigation Rules

Cuando los Managed Beans expresados en la aplicación se refieren a páginas JSP, se pueden expresar Navigation Rules que definen los flujos de proceso entre ellos.

Estos Navigation Rules son expresiones utilizadas en los Managed Beans que representan al flujo de navegación entre una página y otra.

Básicamente, los navigation Rules son expresiones literales (String) que definen una salida desde una página hasta otra. Estas expresiones se escriben en el archivo de definición de JSF (faces­ config.xml). Este es el mismo archivo donde se definen todos los Managed Beans y demás componentes de la aplicación.

5. Render Kits

La tecnologí a JSF no est á directamente orientada al desarrollo de aplicaciones dirigidas a ambiente Web. Muy por el contrario, la implementación de Managed Beans como páginas JSP es solo una de sus capacidades.

En verdad, los Managed Beans pueden estar expresados como Beans que implementan componentes propios de JSF. De esta manera los componentes pueden luego ser convertidos en una salida de interface mediante diferentes tecnologí as.

En este punto es en donde entran en escena los Render Kits. Estos componentes están encargados de generar una salida comprensible para el escenario hacia el cual están orientados. Por ejemplo: XML, WML, SVG, entre otros.

á n orientados. Por ejemplo: XML, WML, SVG, entre otros. Miembro del Parque Tecnol ó gico

Miembro del Parque Tecnológico de Software de Quito | Hernández de Girón Oe4­175y Vasco de Contreras| +593 (2) 3319­027 / 3319­531 | Quito ­ Ecuador

de Quito | Hern á ndez de Gir ó n Oe4­175y Vasco de Contreras| +593 (2)
Ejemplo de una aplicaci ó n utilizando componentes JSF En el gr á fico expuesto

Ejemplo de una aplicación utilizando componentes JSF

Ejemplo de una aplicaci ó n utilizando componentes JSF En el gr á fico expuesto podemos

En el gr áfico expuesto podemos apreciar como integramos JSF dentro del esquema de una aplicación orientada a ambiente Web, manteniendo todas las capas tí picas de un modelo MVC.

5.1 EIS Tier

Es el repositorio de datos que se vaya a utilizar, por ejemplo una Base de Datos

5.2 Integration Tier

La capa de integración representa los mapeos que se hacen para manejar la persistencia y

los mapeos que se hacen para manejar la persistencia y Miembro del Parque Tecnol ó gico

Miembro del Parque Tecnológico de Software de Quito | Hernández de Girón Oe4­175y Vasco de Contreras| +593 (2) 3319­027 / 3319­531 | Quito ­ Ecuador

de Quito | Hern á ndez de Gir ó n Oe4­175y Vasco de Contreras| +593 (2)
acceso a datos del repositorio seleccionado, de manera transparente. Para el caso del ejemplo mostrado

acceso a datos del repositorio seleccionado, de manera transparente. Para el caso del ejemplo mostrado se utiliza Hibernate como motor de persistencia, aunque podrí an utilizarse otras t écnicas como acceso directo por JDBC o EJB 3 Entity Beans o TopLink mappings o ADF Entity Objects o cualquier otra estrategia similar.

Business Logic Tier

La capa de Lógica de negocios representa la abstracción hecha entre la capa de acceso a datos y las interfaces. En esta capa almacenamos todas las operaciones pertinentes a las actividades propias de la aplicaci ón que estemos desarrollando. En el ejemplo se está utilizando Spring Framework, pero se puede utilizar EJB 3 Session Beans, ADF Application Modules o una combinación de cualquiera de ellos.

Presentation Tier

En esta capa es en donde encontramos la actividad propia de JSF. Podemos apreciar claramente que los Backing Beans de esta capa no están ejecutando ninguna actividad propia del negocio. Esas actividades las realiza la capa de Business Logic. Lo que está realizando son solamente las actividades propias de manejo de la interface.

Sin embargo, esta arquitectura podrí a extenderse o reducirse dependiendo de la necesidad presentada por la aplicación. Por ejemplo:

En la capa de presentación se podr í a añadir Struts para manejo de procesos inherentes al funcionamiento de la interface que estuvieran fuera de la capacidad prevista para JSF (por ejemplo conversión de Objetos recibidos desde las capas inferiores)

Podr í a omitirse la capa Business Logic, y manejar los datos recibidos desde la capa de Integración directamente en los Backing Beans y desde ahí a las interfaces. En este caso la aplicació n expondr í a los datos directamente desde la capa de Datos a la interface (Data Driven Application)

la capa de Datos a la interface (Data Driven Application) Miembro del Parque Tecnol ó gico

Miembro del Parque Tecnológico de Software de Quito | Hernández de Girón Oe4­175y Vasco de Contreras| +593 (2) 3319­027 / 3319­531 | Quito ­ Ecuador

de Quito | Hern á ndez de Gir ó n Oe4­175y Vasco de Contreras| +593 (2)