Tutorial JSF
Tutorial JSF
Tutorial JSF
Resumen
En esta ponencia se desarrolla una breve introducción a la implementación de
la tecnología Java Server Faces (JSF), se indicarán los requisitos para su
utilización, así como las funcionalidades que ofrece.
Las aplicaciones JSF son como cualquier otra aplicación Java, se ejecutan en
un contenedor Servlet java, y típicamente contienen JavaBeans (llamados
objetos del modelo en tecnología JSF) conteniendo datos y funcionalidades
especificas de la aplicación, paginas como las JSP, clases de utilidad del lado
del servidor, como beans para acceder a las bases de datos.
1. ¿Qué es JSF?
JSF es un marco de trabajo para crear aplicaciones java J2EE basadas en el
patrón MVC de tipo 1. JSF tiene como características principales:
• Utiliza páginas JSP para generar las vistas, añadiendo una biblioteca de
etiquetas propia para crear los elementos de los formularios HTML.
• Asocia a cada vista con formularios un conjunto de objetos java
manejados por el controlador (managed beans) que facilitan la
recolección, manipulación y visualización de los valores mostrados en
los diferentes elementos de los formularios.
• Introduce una serie de etapas en el procesamiento de la petición, como
por ejemplo la de validación, reconstrucción de la vista, recuperación de
los valores de los elementos, etc.
• Utiliza un sencillo fichero de configuración para el controlador en formato
XML.
• Es extensible, pudiendo crearse nuevos elementos de la interfaz o
modificar los ya existentes.
• Y lo que es más importante: forma parte del estándar J2EE. En efecto,
hay muchas alternativas para crear la capa de presentación y control de
una aplicación web java, como Struts y otros frameworks, pero solo JSP
forma parte del estándar.
2. Implementación.
Las principales implementaciones de JSF son:
• JSF Reference Implementation de Sun Microsystems.
• MyFaces proyecto de Apache Software Foundation.
• Rich Faces
• ICEfaces Contiene diversos componentes para interfaces de usuarios
más enriquecidas, tales como editores de texto enriquecidos,
reproductores de multimedia, entre otros.
Implementando JSF junto con ADF (es un framework comercial de Java para la
creación de aplicaciones empresariales. Es una herramienta del tipo RAD que
se basa en patrones de diseño listos para usar), encontramos un sin número de
componentes listos para trabajar en flujo constante y ágil con bases de datos.
2.1. Riesgos.
Antes de comenzar el desarrollo con JSF debemos conocer aquellos puntos
que nos pueden perjudicar y hacer más largo el desarrollo de lo realmente es
necesario. Con la poca experiencia que tengo en el tema e indagando, se
pueden mencionar los siguientes puntos:
• Utilizar el alicate para clavar. JSF es una herramienta y como tal tiene
una forma de uso. Si nos empeñamos en seguir desarrollando las
páginas como siempre, intentando adaptar JSF al modo al que
habitualmente desarrollamos en vez de adaptarnos a JSF
complicaremos el desarrollo
• Abuso del javascript. JSF permite utilizar javascript para hacer más
rápida una página HTML, evitando peticiones al servidor. Sin embargo la
introducción de javascript en la página complica y alarga los desarrollos
con JSF, y en general con jsp. La capa javascript añade etapas
adicionales a la aplicación, que hace más difícil su depurado. Un
consejo: la página debería poderse ejecutar sin pérdida de funcionalidad
(sólo de rendimiento si se desactiva el javascript).
• La maquetación compleja también complica el desarrollo ya que obliga a
utilizar muchas etiquetas y atributos, especialmente en los datatables. Si
la maquetación de nuestras páginas es compleja deberíamos pensar en
crear componentes JSF a medida que simplifiquen dicho trabajo.
Las aplicaciones JSF están formadas por los siguientes elementos principales:
• Páginas JSP que incluyen los formularios JSF. Estas páginas generarán
las vistas de la aplicación
• Beans java que se conectan con los formularios JSF
• Clases java para la lógica de negocio y utilidades.
• Ficheros de configuración, componentes a medida y otros elementos del
framework.
• Resto de recursos de la aplicación web: recursos estáticos, java script y
otros elementos.
3. Estructura de JSF.
Además las direcciones de origen admiten el * para que una misma regla sirva
para múltiples páginas. También se pueden poner reglas por defecto que se
aplican a todas las peticiones.
4. Gestión de beans.
JSF gestiona automáticamente la creación y el acceso a los beans que utilizan
las páginas jsp. Para ello el controlador determina qué beans utiliza la página y
dónde debe almacenarlos. El fichero de configuración JSF mapea los nombres
cortos de los beans utilizados en las páginas con las clases java que los
definen.
¿Cuando se crean los beans? JSF busca el bean cada vez que se menciona
en la página, en el orden en que aparecen en la página. Si el bean no existe en
el ámbito, lo crea. Por tanto el orden de las expresiones lo determina el orden
de la creación de los beans, si usamos más de un bean en la página.
¿Cómo se hace esto internamente? Al procesar la página JSP, las etiquetas
JSF añaden código que busca el bean mencionado en cada expresión. Si el
bean no existe en el ámbito elegido (request, session o application) se crea uno
nuevo, llamando a su constructor por defecto, y se asocia al ámbito requerido.
Este mecanismo es fundamental para la comprensión del procesamiento de la
página, sobre todo si trabajamos con beans de ámbito request.
4. Resultados Preliminares.
Personalmente me incline, por JDeveloper en su última versión (11g), los
motivos de esta elección se debe a que es una herramienta gratuita y la gente
Oracle tiene una comunidad muy grande que trabaja con JSF los cuales
brindan una serie de ejemplos, demos y tutoriales del uso de esta tecnología,
para el desarrollo de aplicaciones Web.
Por ejemplo: La duración para desarrollar una aplicación Web que permita el
registro de información a una Base de Datos, tiene un tiempo alto de desarrollo
considerando todos los procesos que conlleva elaborarla, ahora como seria
esto utilizando JSF con ADF.
Al crear una página y tener nuestro objetos con solo arrastrar algún
componente en cuestión de segundos podemos crear formularios de búsqueda,
mantenimientos, tablas de lectura, lista de valores para opciones de búsqueda
y un sin número de opciones que puede agilizar nuestro desarrollo de una
forma increíble.
Algunos ejemplos
Fig. 9, Mantenimientos.
5. Discusión
Algunos temas en los que podemos entrar en discusión, para mi humilde punto
de vista serian:
• La disponibilidad de información sobre este tema no es que sea escasa
pero si no es muy sencilla para principiantes a la hora de querer iniciar
en el tema.
• En Costa Rica, no conozco ninguna entidad que trabaje utilizando estas
tecnología lo que impide la búsqueda de ayuda para poder capacitarse.
• Al inicio el conocimiento están básico que el uso o entendimiento es
suma mente difícil, pero a medida que se profundiza en el tema el
desarrollo se agiliza y es impresionante el aprovechamiento que se
puede obtener.
• Para poder hablar de este tema podría llevarme más de un artículo
tratando de explicar componentes y funciones. Sin dejar de lado que mis
conocimientos son auto adquiridos lo que significa que son básicos, pero
con el trabajo que entendido un poco la estructura de trabajo.
6. Conclusion.
El framework JSF forma parte importante del estándar java J2EE. De hecho se
está preparando una nueva versión que traerá numerosas novedades, sobre
todo en lo que se refiere a su integración con AJAX. También se está
comenzando a utilizar en numerosas aplicaciones empresariales, ya que
permite crear pantallas de usuario bastante complejas con una cierta facilidad,
aunque desde luego no es sencillo la primera vez que te enfrentas a este
framework. En la nueva versión se espera una mejora sobre el control de las
fases del ciclo de vida de la petición que faciliten la creación de componentes
JSF complejos que se usan de manera simple.
7. Bibliografía.
www.eclipse.org
www.oracle.com
www.java.sun.com