Download Java Server Faces – Clase 3

Document related concepts
no text concepts found
Transcript
Softlogia S.R.L.
Formación de Recursos Humanos
Java Server Faces
Instructor: Martin R. Baspineiro
Java Server Faces – Clase 3

El ciclo de vida de una pagina Java Server Faces









¿Porque debemos conocer el ciclo de vida?
El ciclo de vida standard de Java Server Faces
La fase Restore View
La fase Apply Request Values
La fase Update Model Values
La fase Invoke Application
La fase Render Response
RichFaces, ICEFaces, ...
Practica
Java Server Faces – Clase 3

Porque debemos conocer el ciclo de vida?




Para comprender globalmente como funciona el
modelo de componentes de interfaz de usuario de Java
Server Faces
Para realizar customizaciones cuando las necesitemos
Para comprender los atributos de los componentes de
Java Server Faces
Para comprender los atributos de los componentes de
interfaz de usuario como RichFaces, ICEFaces, ...
Java Server Faces – Clase 3

El ciclo de vida standard de Java Server Faces




Es un proceso,
Iniciado cuando el cliente realiza un HTTP request
para una pagina,
Finalizado cuando el servidor responde con la pagina
traducida a HTML
Para poder realizar este proceso es necesario pasar a
través de muchas fases
Java Server Faces – Clase 3
Java Server Faces – Clase 3

El ciclo de vida standard de java server faces

Maneja 3 tipos de peticiones



Caso 1: Initial request, solamente se ejecutan las fases de
Restore View y Render Response debido a que no hay datos
o acciones del usuario para procesar.
Caso 2: Postback request, se ejecutan todas las fases del
ciclo de vida debido a que se ingresaron datos o acciones
para procesar.
Caso 3: No es necesario devolver ninguna pagina, por
ejemplo para el caso de un web service o servlet.
Java Server Faces – Clase 3

La fase Restore View



Se inicia cuando se realiza un request para una pagina
jsf, como cuando se presiona un link o un botón.
Durante esta fase se construye la vista de la pagina jsf,
a la cual se asocian los componentes definidos en la
pagina, y sobre los cuales se asocian manejadores de
eventos, conversores y validadores. Se guarda la vista
en la instancia FacesContext.
La instancia FacesContext contiene toda la información
necesaria para procesar una petición. Todos los
componentes, validadores, convertidores, manejadores
de eventos tienen acceso a la instancia de
FacesContext.
Java Server Faces – Clase 3

La fase Restore View


Si la petición para la pagina es Initial Request, se crea
una vista vacía y como resultado se obtiene un árbol de
componentes vació, luego se avanza a la fase Render
Response
Si la petición para la pagina es Postback Request, la
vista correspondiente ya existe, con su correspondiente
árbol de componentes, se recupera la vista usando la
información de estado almacenada en el servidor o el
cliente.
Java Server Faces – Clase 3

La fase Apply Request Values



Luego de que la vista es recuperada, se extraen los
nuevos valores de los componentes. Si la conversión de
valores falla se asocian mensajes de error a la instancia
FacesContext. Los mensajes de error son visualizados
durante la fase Render Response.
Si es que se han encolado eventos durante esta fase, se
le informa a todos los listeners asociados
Si es que algún convertidor o manejador de evento
llama al render response desde la instancia
FacesContext, se salta a la fase de Render Response.
Java Server Faces – Clase 3

La fase Apply Request Values



Si es que los componentes tienen asociado el atributo
immediate con valor true, entonces la validación,
conversión, y proceso de eventos son procesados
durante esta fase.
Si es que la aplicación no necesita enviar una respuesta
que contenga componentes jsf se puede llamar al
método responseComplete de la instancia
FacesContext
Al finalizar esta fase los componentes quedan seteados
con sus nuevos valores, se han asociados los mensajes
de conversión correspondientes, y se han encolado los
eventos.
Java Server Faces – Clase 3

La fase Process Validations



Durante esta fase se procesan todos los validadores
asociados a los componentes. Si el valor es invalido se
asocia un mensaje de error a la instancia FacesContext
y se salta a la fase de RenderResponse
Si es que algún validador o manejador de evento llama
al render response desde la instancia FacesContext, se
salta a la fase de Render Response.
Si es que la aplicación no necesita enviar una respuesta
que contenga componentes jsf se puede llamar al
método responseComplete de la instancia
FacesContext
Java Server Faces – Clase 3

La fase Process Validations

Si es que se han encolado eventos durante esta fase, se
le informa a todos los listeners asociados
Java Server Faces – Clase 3

La fase Update Model Values



Durante esta fase se setean los valores de los
componentes a los objetos correspondientes del lado
del servidor.
Si es que los valores del componente no pueden ser
convertidos a los tipos definidos por los atributos del
bean asociado se salta a la fase Render Response y se
muestra la pagina con los errores asociados.
Si es que algún método updateModel o manejador de
evento llama al render response desde la instancia
FacesContext, se salta a la fase de Render Response.
Java Server Faces – Clase 3

La fase Update Model Values


Si es que la aplicación no necesita enviar una respuesta
que contenga componentes jsf se puede llamar al
método responseComplete de la instancia
FacesContext
Si es que se han encolado eventos durante esta fase, se
le informa a todos los listeners asociados
Java Server Faces – Clase 3

La fase Invoke Application


Durante esta fase se maneja cualquier evento a nivel de
aplicación, como el envío de un formulario o el enlace
con otra pagina
Si es que la aplicación no necesita enviar una respuesta
que contenga componentes jsf se puede llamar al
método responseComplete de la instancia
FacesContext
Java Server Faces – Clase 3

La fase Invoke Application


En cualquier caso los componentes son renderizados
por si mismos cuando el contenedor JSP procesa los
tags.
Después de que el contenido de la vista es renderizado,
el estado de la respuesta se guarda para que las
peticiones posteriores puedan acceder a él y se
encuentra disponible para la fase Restore View.
Java Server Faces – Clase 3

La fase Render Response



Si es que se esta usando una pagina JSP, durante esta
fase, se delega la responsabilidad de renderizar la
pagina al contenedor JSP.
Si es que es un Initial Request, los componentes
definidos en la pagina se agregaran al árbol de
componentes y para cada componente se asociaran los
conversores, validadores y manejadores de eventos.
Si es que es un Postback Request, y si encontraron
errores durante las fases: Apply Request Values,
Processes Validations, Update Model Values, entonces
se muestra la pagina original con los mensajes de error
asociados.
Java Server Faces

RichFaces, ICEFaces, ...


El ciclo de vida de Java Server Faces en librerías de
componentes.
Este ciclo de vida se repite continuamente en cada
petición que se hace al servidor. Si se realizan
peticiones parciales como en ICEfaces o RichFaces,
también se produce el mismo ciclo con leves
modificaciones para evitar ejecutar las conversiones y
validaciones en campos que aún no han sido llenados
por ejemplo.
Java Server Faces – Clase 3

Practica


Alternativa 1 - Practica Chapter 11Using JavaServer
Faces Technology in JSP Pages
Alternativa 2 – Practica Real




Crear una aplicación para el registro de horas por proyecto
La aplicación debe contar con una pagina de login
La aplicación debe contar con una pagina donde el usuario
logueado podrá cargar las horas insumidas por actividad, por
día, por proyecto.
La aplicación listara las actividades con sus respectivas horas
en base un filtro por usuario, por proyecto, por descripción
de actividad y por fecha.