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.