Crear una aplicación JavaServer Faces simple
El proceso de crear aplicaciones web con JavaServer Faces es fácil y amigable. Desarrollar una aplicación requiere típicamente de las siguientes tareas:
· Desarrollar beans manejadores
· Agregar declaraciones de manejo de bean
· Crear páginas web utilizando de etiquetas
· Mapear la instancia FacesServlet
Esta sección describe esas tareas creando una aplicación en JavaServer Faces simple.
El ejemplo es la aplicación Hello que incluye un backing bean y una página web. Cuando el cliente accede, la página web imprime un mensaje de HelloWord. La aplicación ejemplo está localizada en el directorio tut-install/examples/web/hello. Las tareas involucradas en el desarrollo de esta aplicación pueden examinarse revisando los componentes en detalle.
Creando El Bean de Respaldo (Backing Bean)
Como se mencionó anteriormente en este capitulo, el backing bean, es un componente JavaBean que es gestionado por la tecnología JavaServer Faces. Los componentes en una página son asociados a un backing bean, que provee la lógica de la aplicación. El backing bean del ejemplo Hello.java contiene el siguiente código:
package hello;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class Hello {
final String world = "Hello World!";
public String getworld() {
return world;
}
}
El backing bean establece el valor de la variable world con la cadena “Hello World” La anotación @ManagedBean registra al backing bean como un recurso en la implementación de JavaServer Faces. Para mas información sobre beans gestionados y anotaciones, ver el capitulo 9, Desarrollo con la Tecnología JavaServer Faces.
Creando la Página Web
En una aplicación Facelets típica, las páginas son creadas en XHTML. El la página web de ejemplo, beanjello.xhtml, es una pagina en XHTML simple. Esta tiene el siguiente contenido.
package hello;
import javax.faces.bean.ManagedBean;
@ManagedBean
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelets Hello World</title>
</h:head>
<h:body>
#{hello.world}
</h:body>
</html>
Una página XHTML Facelets puede contener otros elementos diversos, los cuales se cubrirán mas adelante en este tutorial.
La página web conecta el backing bean, por medio del lenguaje de expresiones EL (Expression Language), la expresión con el valor #{hello.world}, el cual recupera el valor de la propiedad world del backing bean Hello. Note que se usa la referencia hello al backing bean Hello. Si no se especifica nombre en la anotación @ManagedBean, se puede llamar al backing bean con el mismo nombre y la primera letra de la clase en minúsculas.
Para mas información sobre el uso de expresiones EL, vea el Capítulo 6, Lenguaje de Expresiones. Para mas información acerca del la tecnología Facelets, vea el Capítulo 5, Introducción a los Facelets. Para mas información acerca del modelo de programación y construcción de páginas web usando JavaServer Faces, vea el Capítulo 7, Uso de la Tecnología JavaServer Faces en Páginas Web.
Mapeando la instancia FacesServlet
La tarea final requiere mapear el servlet FacesServlet, lo cual se consigue modificando el deployment descriptor (web.xml) . Un mapeo típico del servlet FacesServlet es como sigue:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
El segmento de archivo precedente, representa parte de un archivo de descripción de despliegue típico. El descriptor de despliegue puede contener además, otros contenidos relevantes para la configuración de una aplicación con JavaServer Faces, pero esa información no se cubre en esta sección.
El mapeo de FacesServlet es automáticamente hecho si se usa un IDE como Netbeans IDE.
El Ciclo de Vida de la Aplicación Hello
Cada aplicación web tiene un ciclo de vida. Las tareas comunes como el manejo de peticiones entrantes, decodificación de parámetros, modificación y almacenamiento de estado y rendereo de páginas web hacia el navegador, son todas ejecutadas durante el ciclo de vida de la aplicación. Algunos marcos de trabajo web ocultan los detalles del ciclo de vida mientras que otros requieren ser manejados manualmente.
Por default, JavaServer Faces maneja automáticamente la mayoría de las acciones de ciclo de vida de una página web. No obstante, es posible acceder a los diferentes escenarios de la petición de un ciclo de vida y es modificar o ejecutar diversas acciones si la aplicación así lo requiere.
No es necesario para quien esta comenzando, conocer todo el ciclo de vida de una aplicación en JavaServer Faces, pero esta información puede ser muy útil para quien desea crear aplicaciones mas complejas.
El ciclo de vida de una aplicación JavaServer Faces comienza y termina con la siguiente actividad: El cliente hace una petición a la página web, y el server responde con una página. El ciclo consiste de dos faces principales: ejecutar y renderear.
Durante la fase de ejecución, diversas acciones son ejecutadas:
· La vista de la aplicación es construida o restaurada.
· Los valores de parámetros de petición son aplicados.
· Conversiones y validaciones son ejecutadas para los valores de los componentes.
· Los beans de respaldo son actualizados con los valores de los componentes.
· La lógica de la aplicación es invocada.
Para una primera petición (initial), solo se construye la vista. Para peticiones subsecuentes (postback), algunas o quizá todas las acciones pueden tener lugar.
En la fase de rendering, la vista solicitada es rendereada como respuesta al cliente. El rendering es típicamente el proceso de generación de salidas, que pueden ser HTML o XHTML, y pueden ser leídas por el cliente, usualmente un navegador.
A continuación daremos una descripción corta del ejemplo en JavaServer Faces donde haremos una revisión resumida de la actividad detrás de escena que se realiza en el ciclo de vida del ejemplo.
El ejemplo hello atraviesa por los siguientes escenarios cuando es desplegada en el servidor GlassFish.
1. Cuando la aplicación hello es construida y desplegada en GlassFish, la aplicación se encuentra en un estado no inicializado.
2. Cuando un cliente hace una petición inicial a la página beanhello.xhtml, la aplicación hello Facelets es complilada.
3. La aplicación Facelets ya compilada es ejecutada, y un nuevo árbol de componentes es construido para la aplicación hello y es puesto en un FacesContext.
4. El árbol de componentes es poblado con el componente y la propiedad del bean de respaldo asociada a el, representada por la expresión EL hello.world.
5. Una nueva vista es construida, basada en el árbol de componentes.
6. La vista es rendereada como respuesta a las peticiones del cliente.
7. El árbol de componentes es destruido automáticamente.
8. En subsecuentes peticiones (postback), el árbol de componentes es reconstruido, y el estado almacenado se aplica.
Para información mas detallada sobre el ciclo de vida de JavaServer Faces, vea JavaServer Faces Specification, Version 2.0.
Para Construir, Empaquetar, Desplegar y Correr la Aplicación en NetbeanIDE
1. En el opción File del menú principal, elija Open Project.
2. En la ventana de dialogo de Open Project, navegue hasta:
Tut-install/examples/web
3. Seleccione el folder hello.
4. Seleccione el check box Open as Main Project.
5. De click en Open Project.
6. In el tab Projects, de click derecho a el proyecto hello y ejecute.
Estos pasos compilan, ensamblan y despliegan la aplicación y después abren una ventana del navegador donde se hace petición a la siguiente URL:
la salida que se despliega es la siguiente:
Hello World!
Información Adicional acerca de la tecnología JavaServer Faces
Para mas información acerca de JavaServer faces, vea:
· Especificación de JavaServer Faces 2.0:
http://jcp.org/en/jsr/detail?id=314
· Página web de la tecnología JavaServer Faces:
http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html
· Página de descarga JavaServer Faces 2.0:
http://www.oracle.com/technetwork/java/javaee/download-139288.html
· Notas de Mojarra (JavaServer Faces 2.0):
http://javaserverfaces.java.net/nonav/rlnotes/2.0.0/index.html
0 comentarios:
Publicar un comentario en la entrada