PageHandler

Un PageHandler de EGL es un ejemplo de código de página; controla la interacción de tiempo de ejecución de un usuario con una página Web y puede realizar cualquiera de las siguientes tareas:

Puede trabajar más fácilmente personalizando un archivo JSP y creando el PageHandler en Page Designer; para conocer detalles, consulte Soporte de Page Designer para EGL.

El propio PageHandler incluye variables y los siguientes tipos de lógica:

Existen dos maneras de acceder a las variables del PageHandler:

El componente pageHandler debe ser simple. Aunque el componente podría incluir validaciones de datos ligeros, como por ejemplo comprobaciones de rangos, se aconseja que invoque otros programas para ejecutar lógica empresarial compleja. El acceso a bases de datos, por ejemplo, debe reservarse a un programa llamado.

Salida asociada a un PageHandler

Cuando guarda un PageHandler, EGL coloca un archivo JSP en la carpeta de proyecto WebContent\WEB-INF, pero sólo en este caso:
  • Ha asignado un valor a la propiedad view del PageHandler, que especifica un nombre de archivo JSP
  • La carpeta WebContent\WEB-INF no contiene un archivo JSP con el nombre especificado

EGL no sobreescribe nunca un archivo JSP.

Si una preferencia del entorno de trabajo está establecida en construcción automática al guardar, se produce la generación de PageHandler siempre que se guarda el PageHandler. En cualquier caso, cuando se genera un PageHandler, la salida se compone de los siguientes objetos:
  • El bean de página es una clase Java que contiene datos y que proporciona servicios de inicialización, validación de datos y manejo de eventos para la página Web.
  • Un elemento de <bean gestionado> se coloca en el archivo de configuración JSF del proyecto para identificar el bean de página durante la ejecución.
  • Un elemento de <norma de navegación> se crea en el archivo de configuración de la aplicación JSF para asociar un resultado JSF (el nombre del PageHandler) con el archivo JSP que debe invocarse.
  • Un archivo JSP, en la misma situación que cuando guarda el PageHandler.

También se generan todas las tablas de datos y registros que utiliza el manejador de componentes.

Validación

Si los códigos JSF basados en JSP realizan conversión de datos, validación de datos o manejo de eventos, el entorno de ejecución JSF realiza el proceso necesario en cuanto el usuario envía la página Web. Si se encuentran errores, el entorno de ejecución JSF puede volver a visualizar la página sin pasar el control al PageHandler. Sin embargo, si recibe el control, el PageHandler puede llevar a cabo un conjunto de validaciones basadas en EGL.

Las validaciones basadas en EGL se realizan si se especifican los siguientes detalles al declarar el PageHandler:
  • Las ediciones básicas (como, por ejemplo, la longitud mínima de entrada) para campos de entrada individuales.
  • Las ediciones basadas en el tipo (carácter, numérico) para campos individuales.
  • Las ediciones de DataTable (rango, coincidencia válida y coincidencia no válida) para campos de entrada individuales, como se explica en la sección Componente DataTable.
  • Las funciones de edición para campos de entrada individuales.
  • La función de edición para el PageHandler en su conjunto.
El PageHandler supervisa las ediciones en el siguiente orden, pero sólo para los elementos cuyos valores ha cambiado el usuario:
  1. Todas las ediciones básicas y basadas en el tipo, aunque algunas no sean satisfactorias
  2. (Si las ediciones anteriores han sido satisfactorias) todas las ediciones de tabla, aunque algunas no sean satisfactorias
  3. (Si las ediciones anteriores han sido satisfactorias) todas las funciones de edición de tabla, aunque algunas no sean satisfactorias
  4. (Si todas las ediciones anteriores han sido satisfactorias) la función de edición de pageHandler

La propiedad del elemento de página validationOrder define el orden en el que se editan los campos de entrada individuales y en el que se invocan las funciones de validador de campos.

Si no se especifican propiedades validationOrder, el valor predeterminado es el orden de los elementos definidos en el PageHandler, de arriba a abajo. Si validationOrder se ha definido para algunos de los elementos de un PageHandler, pero no para todos, primero se realiza la validación de todos los elementos con la propiedad validationOrder, en el orden especificado. A continuación, se realiza la validación de los elementos sin la propiedad validationOrder en el orden de los elementos en el PageHandler, de arriba a abajo.

Caso práctico de entorno de ejecución

Esta sección ofrece una visión general técnica de la interacción en tiempo de ejecución entre el usuario y el servidor de aplicaciones Web.

Cuando el usuario invoca un JSP que está soportado por un PageHandler, se realizan los pasos siguientes:
  1. El servidor de aplicaciones Web inicializa el entorno:
    1. Construye un objeto de sesión para conservar los datos que necesitan las aplicaciones a las que accede el usuario en varias interacciones
    2. Construye un objeto de petición para conservar los datos sobre la interacción actual del usuario
    3. Invoca el JSP
  2. El JSP procesa una serie de códigos JSF para construir una página Web:
    1. Crea una instancia del PageHandler, hace que la función onPageLoad (si existe) se invoque con argumentos especificados por el usuario y coloca el PageHandler en el objeto de petición
    2. Accede a los datos almacenados en los objetos de petición y sesión para incluirlos en la página Web
    Nota: El componente pageHandler tiene una propiedad llamada onPageLoadFunction, que identifica la función de PageHandler que se invoca cuando se inicia el JSP. La función recupera automáticamente los argumentos suministrados por el usuario que se han pasado a la misma; puede llamar a otro código; y puede colocar datos adicionales en el objeto de petición o sesión del servidor de aplicaciones Web; pero la función no puede reenviar el control a otra página ni hacer que se visualice un mensaje de error cuando la página se presenta por primera vez al usuario.
  3. El JSP envía la página Web al usuario y el servidor de aplicaciones Web destruye el objeto de respuesta, dejando el objeto de sesión y el JSP.
Si el usuario suministra datos en los campos que se visualizan en pantalla asociados a un código HTML <FORM> y envía el formulario, se realizan los pasos siguientes:
  1. El servidor de aplicaciones Web reinicializa el entorno:
    1. Construye un objeto de petición
    2. Coloca los datos recibidos para el formulario enviado en el bean de página para validarlos
    3. Vuelve a invocar el JSP
  2. El JSP procesa una serie de códigos JSF para almacenar los datos recibidos en el bean de página.
  3. El PageHandler de tiempo de ejecución valida los datos:
    1. Realiza ediciones relativamente básicas (como, por ejemplo, la longitud mínima de entrada), según se especifica en las declaraciones de datos de pageHandler
    2. Invoca funciones de validación específicas del elemento, según se especifica en las declaraciones de datos de pageHandler
    3. Invoca una función de validador de pageHandler, ya que es necesaria si desea validar un campo al menos parcialmente en función del contenido de otro campo

    (Para obtener información detallada sobre la validación, consulte la sección anterior).

  4. Si se produce un error, el entorno de ejecución EGL coloca los errores en una cola JSF y el JSP vuelve a visualizar la página Web con los mensajes incorporados. Sin embargo, si no se produce un error, el resultado es el siguiente:
    1. Los datos almacenados en el bean de página se escriben en el bean de registro
    2. El proceso subsiguiente está determinado por un manejador de eventos, que se identifica en el código JSF que está asociado al botón que pulsa el usuario o al hiperenlace.

El manejador de eventos puede reenviar el proceso a una etiqueta JSF, que identifica una correlación en un archivo de configuración basado en JSF de tiempo de ejecución. A su vez, la correlación identifica el objeto que debe invocarse, que puede ser un JSP (normalmente un JSP asociado a un PageHandler EGL) o un servlet.

Conceptos relacionados
Referencias a componentes
Soporte Web

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.