Escolar Documentos
Profissional Documentos
Cultura Documentos
Índice
Introducción - La tecnología JavaServer Faces.................................................................1
Beneficios de la tecnología JavaServer Faces – Mejoras sobre JSP.................................2
Componentes de una aplicación JSF.................................................................................2
Ejemplo de creación paso a paso de una aplicación JSF...................................................3
1.- Mapear la instancia del FacesServlet. ....................................................................3
2.-Crear las páginas.......................................................................................................4
3.-Definir la navegación entre páginas..........................................................................6
4.-Desarrollar los beans.................................................................................................6
5.-Añadir las declaraciones de los beans manejados.....................................................7
Versiones de JSF...............................................................................................................7
Implementaciones y Extensiones populares de JSF..........................................................8
Conclusión.........................................................................................................................8
Bibliografía........................................................................................................................9
Trabajo de Programación Distribuida. JavaServer Faces.
• Dos bibliotecas de etiquetas (tag libraries) de JSP para poder representar los
componentes de la interfaz de usuario en una página JSP y para enlazar dichos
componentes con objetos del lado del servidor.
La siguiente figura muestra como los interfaces de usuario que se crean con la
tecnología JSF (en el ejemplo myUI) se ejecutan en el servidor y se envían al cliente
para ser representados en el navegador:
La página JSP del ejemplo (myform.jsp) es también una página JSF, ya que incluye
etiquetas JSF, es decir representa los componentes de la interfaz de usuario usando
etiquetas personalizadas (custom tags) definidas por la tecnología JSF.
Página 1
Trabajo de Programación Distribuida. JavaServer Faces.
Las aplicaciones web construidas con la tecnología JSP consiguen esto solo en parte, ya
que una aplicación que solo utilice páginas JSP no puede hacer corresponder peticiones
HTTP con manejadores de eventos específicos de los componentes, ni gestionar los
elementos de la interfaz de usuario como objetos con estado en el servidor tal como
hace una aplicación JSF.
Otro objetivo importante de la tecnología JSF es llevar un paso más allá los conceptos
de componentes de interfaz de usuario y capa web, sin limitarlos a un lenguaje de
scripts ni de marcado determinado.
Página 2
Trabajo de Programación Distribuida. JavaServer Faces.
Un requisito de cualquier aplicación JSF es que todas las peticiones a la aplicación que
impliquen la utilización de componentes JSF deben pasar por el FacesServlet. Una
instancia de este servlet gestiona el ciclo de vida de las peticiones a la aplicación web e
inicializa los recursos requeridos por la tecnología JSF.
El ciclo de vida de las aplicaciones JSF es más complicado que el de las páginas JSP, ya
que está dividido en múltiples fases para soportar el modelo de componentes de la
interfaz de usuario, que es más complejo:
Para asegurar que la instancia del FacesServlet se invoca, se debe establecer su mapeo
en el fichero descriptor despliegue, como con cualquier otro servlet.
Página 3
Trabajo de Programación Distribuida. JavaServer Faces.
<servlet>
<display-name>FacesServlet</display-name>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>/ejemploJSF/*</url-pattern>
</servlet-mapping>
En este ejemplo se utiliza un prefijo (ejemploJSF) para identificar las páginas JSP que
contienen componentes JSF. Por tanto, un ejemplo de URL para una página de la
aplicación JSF sería:
http://localhost:8080/aplicacionJSF/ejemploJSF/paginaInicial.jsp
Crear las páginas de una aplicación JSF implica incluir los componentes de la interfaz
de usuario en las páginas, mapear los componentes a los beans asociados y agregar las
etiquetas que registran los conversores, validadotes y manejadores de eventos de los
componentes.
Como en cualquier página JSP, se deben añadir las etiquetas HTML y HEAD a la
página, por ejemplo:
<HTML xmlns="http://www.w3.org/1999/xhtml"xml:lang="en">
<HEAD> <title>Ejemplo JSF</title> </HEAD>
...
</HTML>
Para usar los componentes JSF en las páginas JSP, las páginas deben tener acceso a las
dos bibliotecas estándar de etiquetas: la bibliotecas de etiquetas de los componentes
HTML y la de los componentes core. Para ello se emplean las siguientes declaraciones
taglib:
La primera declaración declara los componentes HTML con el prefijo “h”. Todas las
etiquetas de los componentes HTML tendrán este prefijo. Los componentes de la
biblioteca core tendrán el prefijo “f”.
Página 4
Trabajo de Programación Distribuida. JavaServer Faces.
Todos los componentes de una página JSF se estructuran como parte de un árbol de
componentes, llamado view. La etiqueta view representa la raíz de este árbol, y todas las
etiquetas de los componentes JSF de la página deben estar dentro de una etiqueta view.
La página de ejemplo, tras añadir las etiquetas view y form, quedaría así:
Una vez que se ha creado esta estructura de página se pueden ir añadiendo los
componentes que formarán la interfaz de usuario.
Algunos de los componentes que más se usan al crear una página JSF son los siguientes:
<h:outputText value="#{DatosUsuario.nombre}">
• inputText. Muestra una caja de texto editable. Los atributos más usados son
label, para mostrar una etiqueta descriptiva junto a la caja de texto, value para
asociar el valor a una propiedad de un backing bean. Dentro de la etiqueta
inputText se puede anidar otra para hacer validaciones, como se muestra en el
siguiente ejemplo:
Página 5
Trabajo de Programación Distribuida. JavaServer Faces.
Definir la navegación entre páginas implica definir a qué página ir cuando el usuario
pulsa un botón o un hiperenlace. La navegación de la aplicación se define en el fichero
de configuración de recursos, usando un sistema basado en reglas.
<navigation-rule>
<from-view-id>/paginaInicial.jsp</from-view-id>
<navigation-case>
<from-outcome>exito</from-outcome>
<to-view-id>/respuesta.jsp</to-view-id>
</navigation-case>
</navigation-rule>
Una aplicación JSF típica asocia un backing bean con cada página de la aplicación. El
backing bean define propiedades y métodos que están relacionados con los
componentes de la interfaz de usuario usados en la página.
Página 6
Trabajo de Programación Distribuida. JavaServer Faces.
<managed-bean>
<managed-bean-name>DatosUsuario</managed-bean-name>
<managed-bean-class>
aplicacionJSF.DatosUsuario
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Esta declaración indica al entorno JSF que el bean manejado DatosUsuario se crea
como una instancia de la clase java aplicacionJSF.DatosUsuario y que tiene el ámbito
de sesión.
Esto hace que los desarrolladores puedan hacer referencia a sus propiedades en las
páginas, mediante expresiones declarativas del lenguaje EL (Expression Language),
como la que vimos anteriormente:
value="#{DatosUsuario.nombre}"
Versiones de JSF
Página 7
Trabajo de Programación Distribuida. JavaServer Faces.
Conclusión
A partir de mi experiencia profesional usando una implementación de JSF (Oracle ADF
Faces) y la documentación consultada para la elaboración de este trabajo, he podido
extraer las siguientes conclusiones:
Página 8
Trabajo de Programación Distribuida. JavaServer Faces.
Bibliografía
1. Web de Sun Microsystems sobre la tecnología JavaServer Faces:
http://java.sun.com/javaee/javaserverfaces/index.jsp
http://en.wikipedia.org/wiki/JavaServer_Faces
http://jcp.org/en/jsr/overview
http://myfaces.apache.org/trinidad/index.html
http://www.springsource.org/documentation
6. Web de ICEFaces
http://www.icefaces.org/main/home/
7. Web de PrettyFaces
Página 9
Trabajo de Programación Distribuida. JavaServer Faces.
http://ocpsoft.com/prettyfaces/
Página 10