JSF: ciclo de vida
El ciclo de vida de la aplicación JSF consta de seis fases que son las siguientes:
- Restaurar la fase de vista
- Aplicar la fase de valores de solicitud; procesar eventos
- Fase de validaciones de procesos; procesar eventos
- Actualización de la fase de valores del modelo; procesar eventos
- Invocar la fase de solicitud; procesar eventos
- Fase de respuesta de renderizado
Las seis fases muestran el orden en el que JSF procesa un formulario. La lista muestra las fases en su orden probable de ejecución con el procesamiento de eventos en cada fase.
Fase 1: Restaurar vista
JSF comienza la fase de restauración de la vista tan pronto como se hace clic en un enlace o botón y JSF recibe una solicitud.
Durante esta fase, JSF crea la vista, conecta los controladores de eventos y los validadores a los componentes de la interfaz de usuario y guarda la vista en la instancia de FacesContext. La instancia de FacesContext ahora contendrá toda la información necesaria para procesar una solicitud.
Fase 2: Aplicar valores de solicitud
Una vez creado / restaurado el árbol de componentes, cada componente del árbol de componentes utiliza el método de decodificación para extraer su nuevo valor de los parámetros de solicitud. El componente almacena este valor. Si la conversión falla, se genera un mensaje de error y se pone en cola en FacesContext. Este mensaje se mostrará durante la fase de respuesta de procesamiento, junto con cualquier error de validación.
Si algún detector de eventos de métodos de decodificación llamado renderResponse en la instancia actual de FacesContext, JSF pasa a la fase de respuesta de renderizado.
Fase 3: validación del proceso
Durante esta fase, JSF procesa todos los validadores registrados en el árbol de componentes. Examina las reglas de atributos del componente para la validación y compara estas reglas con el valor local almacenado para el componente.
Si el valor local no es válido, JSF agrega un mensaje de error a la instancia de FacesContext, y el ciclo de vida avanza a la fase de respuesta de procesamiento y muestra la misma página nuevamente con el mensaje de error.
Fase 4: Actualizar los valores del modelo
Una vez que JSF comprueba que los datos son válidos, recorre el árbol de componentes y establece las propiedades del objeto del lado del servidor correspondientes a los valores locales de los componentes. JSF actualizará las propiedades del bean correspondientes al atributo de valor del componente de entrada.
Si algún método updateModels llamado renderResponse en la instancia actual de FacesContext, JSF pasa a la fase de respuesta de render.
Fase 5: Solicitud de invocación
Durante esta fase, JSF maneja cualquier evento a nivel de aplicación, como enviar un formulario / vincular a otra página.
Fase 6: Respuesta de renderizado
Durante esta fase, JSF solicita al servidor de aplicaciones / contenedor que represente la página si la aplicación utiliza páginas JSP. Para la solicitud inicial, los componentes representados en la página se agregarán al árbol de componentes a medida que el contenedor JSP ejecuta la página. Si esta no es una solicitud inicial, el árbol de componentes ya está construido, por lo que no es necesario agregar componentes nuevamente. En cualquier caso, los componentes se mostrarán a sí mismos cuando el contenedor JSP / servidor de aplicaciones atraviesa las etiquetas en la página.
Una vez que se procesa el contenido de la vista, el estado de respuesta se guarda para que las solicitudes posteriores puedan acceder a él y esté disponible para la fase de restauración de la vista.