...
Fase 1: Reconstrucción del árbol de procesamiento
Tras un submit se restaura el árbol de contenido.
El controlador examina el contenido y crea los componentes que se requieran por el contenido recibido.
El controlador examina el contenido recibido para saber si es una nueva vista o está en una ya creada de antemano.
El controlador almacena los ID de las vistas que ha recibido para saber qué objetos debe inicializar y cuales recargar.
Fase 2: Aplicación de los valores reconstruidos en el servidor
Cada componente creado en el paso anterior obtiene su valor en base a lo recibido en el paso anterior.
Los valores recibidos se convierten a los esperados por sus respectivos componentes.
Si un componente es marcado como inmediato, se asigna el valor y se pasa a la etapa de validación antes de tratar el resto de componentes.
Fase 3: Procesamiento de eventos
En este punto han podido lanzarse errores de conversión de tipos o de validación en caso de valores inmediatos.
Estos eventos se capturan y se le indican al controlador.
El controlador redirigirá el flujo hacia un estado seguro devolviendo un evento de error en caso de proceder.
Fase 4: Validación de valores introducidos
Se procede a comprobar si los valores introducidos cumplen las restricciones definidas.
Estos eventos se capturan y se le indican al controlador.
El controlador redirigirá el flujo hacia un estado seguro devolviendo un evento de error en caso de proceder.
Se ejecutarán los validadores estándar y los definidos por el usuario en el código fuente.
En caso de no cumplirse alguna restricción se lanzará un evento de error y se redirigirá el flujo.
Fase 5: Actualización del modelo
Una vez validados los datos se procede a actualizar el modelo.
Se copian los datos procesados en las clases Java que los representa pasando la información a la parte de control de la aplicación.
En este punto los valores copiados son válidos desde el punto de vista de la corrección, aunque pueden ser inválidos para la lógica de negocio.
Fase 6: Invocar aplicación
Con los valores introducidos procedemos a invocar a la lógica de negocio de la aplicación.
Tras procesar los datos pasaremos a generar una respuesta o bien a un estado de error.
En este punto se persistirán los datos, calculará la redirección, se harán las llamadas a servicios externos, etc.
Fase 7: Renderizado de la respuesta al cliente
Se genera la página de respuesta al cliente en base al resultado obtenido en la fase anterior.
Se tratará el árbol de respuesta para mostrar los elementos que así sean necesarios como ssus valores.
En caso de haberse producido un error deberá notificarse al cliente en esta redirección.