Componente PageHandler en formato fuente EGL

Un componente pageHandler se declara en un archivo EGL, que está descrito en Proyectos, paquetes y archivos EGL. Este componente es un componente primario, lo que significa que debe estar en el nivel superior del archivo y debe tener el mismo nombre que el archivo.

Este es un ejemplo de un componente pageHandler:
// Page designer requiere que todos los pageHandler
// estén en un paquete llamado "pagehandlers".
package pagehandlers ;

PageHandler ListCustomers 
  {onPageLoadFunction="onPageLoad"}  

  // Biblioteca para acceso de tabla cliente
  use CustomerLib3;  

  // Lista de clientes
	 customerList Customer[] {maxSize=100}; 

	Function onPageLoad()
		
    // Clave inicial para recuperar clientes
    startkey CustomerId;   		
  
    // Resultado de llamada de biblioteca
    status int;            
		
    		// Recuperar hasta 100 registros de cliente
		startKey = 0;
		  CustomerLib3.getCustomersByCustomerId(startKey,
        customerList, status);

   		if ( status != 0 && status != 100 ) 
			setError("Ha fallado la recuperación de clientes.");
    	end
	 	end

	 Function returnToIntroductionClicked()
  		forward to "Introducción";
	 	end
End
El diagrama de un componente pageHandler es el siguiente:

Diagrama de sintaxis de un componente pageHandler
PageHandler nombreComponenteManejadorPáginas ... end
Identifica el componente como un manejador de páginas y especifica el nombre de componente. Para conocer las reglas de denominación, consulte Convenios de denominación.
propiedadManejadorPáginas
Una propiedad del manejador de páginas. Encontrará los detalles en Propiedades del manejador de páginas.
use nombreComponenteTablaDatos, use nombreComponenteBiblioteca
Una declaración use que simplifica el acceso de una tabla de datos o biblioteca. Para conocer detalles, consulte Declaración de uso.
private
Indica que la variable, constante o función no está disponible para la JSP que muestra la página Web. Si omite el término private, puede enlazar la variable, constante o función a un control en la página Web.
nombreElementoDatos
El nombre de un elemento de datos (una variable). Para conocer las reglas, consulte Convenios de denominación.
tipoPrimitivo
El tipo primitivo asignado al elemento de datos.
longitud
La longitud del elemento de estructura, que es un entero. El valor de un área de memoria que se basa en el elemento de estructura incluye el número de caracteres o dígitos especificado.
decimales
Para un tipo numérico (BIN, DECIMAL, NUM, NUMC o PACF), puede especificar decimales, que es un entero que representa el número de posiciones después de la coma decimal. El número máximo de posiciones decimales es el menor de dos números: 18 o el número de dígitos declarado como longitud. La coma decimal no se almacena con los datos.
nombreComponenteElementoDatos
El nombre de un componente dataItem que es un modelo de formato para el elemento de datos, tal como se describe en typeDef. El componente dataItem debe ser visible al componente pageHandler, tal como se describe en Referencias a componentes.
propiedadElemento
Una propiedad de elemento. Encontrará los detalles en Propiedades de elemento de página.
nombreRegistro
El nombre de un registro (una variable). Para conocer las reglas, consulte Convenios de denominación.
nombreComponenteRegistro
El nombre de un componente de registro que es un modelo de formato para el registro, tal como se describe en typeDef. El componente de registro debe ser visible al componente pageHandler, tal como se describe en Referencias a componentes.
propiedadRegistro
Una alteración temporal de una propiedad de registro. Para conocer detalles sobre las propiedades de registros, consulte una de las siguientes descripciones, dependiendo del tipo de registro indicado en nombreComponenteRegistro:
nombreElemento
El nombre del elemento de registro cuyas propiedades desea alterar temporalmente.
propiedadElemento
Una alteración temporal de una propiedad de elemento. Encontrará los detalles en Visión general de propiedades y alteraciones temporales de EGL.
nombreConstante literal
El nombre y valor de una constante. Para conocer las reglas, consulte Convenios de denominación.
nombreMatriz
El nombre de una matriz de registros o elementos de datos dinámica o estática. Si utiliza esta opción, los demás símbolos a la derecha (nombreComponenteElementoDatos, tipoPrimitivo y demás) hacen referencia a cada elemento de la matriz.
componenteFunción
Una función incorporada. Para conocer detalles sobre la sintaxis, consulte Componente de función en formato fuente EGL.

Propiedades del manejador de páginas

Las propiedades del manejador de páginas son las siguientes y son opcionales:
alias = "alias"
Una serie incorporada a los nombres de la salida generada. Si no especifica un alias, se utilizará en su lugar el nombre del componente pageHandler.
allowUnqualifiedItemReferences = no, allowUnqualifiedItemReferences = yes
Especifica si debe permitirse que el código haga referencia a elementos de estructura, pero excluyendo el nombre del contenedor, que es la tabla de datos, registro o formulario que contiene el elemento de estructura. Observe, por ejemplo, el siguiente componente de registro:
  Record aRecordPart type basicRecord
    10 myItem01 CHAR(5);
    10 myItem02 CHAR(5);
  end
La siguiente variable está basada en ese componente:
  myRecord aRecordPart;
Si acepta el valor por omisión de allowUnqualifiedItemReferences (no), debe especificar el nombre de registro al hacer referencia a myItem01, como en esta asignación:
  myValue = myRecord.myItem01;
Si establece la propiedad allowUnqualifiedItemReferences como yes, no obstante, puede evitar especificar el nombre de registro:
  myValue = myItem01;

Se recomienda aceptar el valor por omisión, que ofrece un mejor resultado. Especificando el nombre de contenedor, se reduce la ambigüedad para quien lea su código y para EGL.

EGL utiliza un conjunto de reglas para determinar el área de la memoria a la que hace referencia un nombre de variable o un nombre de elemento. Para conocer detalles, consulte Referencias a variables y constantes.

handleHardIOErrors = yes, handleHardIOErrors = no
Establece el valor predeterminado para la variable del sistema VGVar.handleHardIOErrors. La variable controla si un programa continúa ejecutándose después de que se haya producido un error grave en una operación de E/S en un bloque try. El valor predeterminado de la propiedad es yes, que establece la variable en 1.

Para obtener más detalles, consulte VGVar.handleHardIOErrors y Manejo de excepciones.

includeReferencedFunctions = no, includeReferencedFunctions = yes
Indica si el bean de manejador de páginas contiene una copia de cada función que no está ni dentro de la biblioteca ni dentro del manejador de páginas ni en la biblioteca a la que accede el manejador de páginas. El valor por omisión es no, que significa que puede ignorar esta propiedad si está cumpliendo con las siguientes prácticas en el momento del desarrollo, tal como se recomienda:
  • Colocar funciones compartidas en una biblioteca
  • Colocar funciones no compartidas en el manejador de páginas

Si está utilizando funciones compartidas que no están en una biblioteca, la generación sólo es posible si establece la propiedad includeReferencedFunctions como yes.

localSQLScope = no, localSQLScope = yes
Indica si los identificadores para los conjuntos de resultados SQL y las sentencias preparadas son locales para el pageHandler, lo que constituye el valor predeterminado. Si acepta el valor yes, los distintos programas llamados por el pageHandler pueden utilizar independientemente los mismos identificadores.

Si especifica no, los identificadores se comparten en toda la unidad de ejecución. Los identificadores creados en el código actual están disponibles en cualquier parte, aunque otro código puede utilizar localSQLScope = yes para bloquear el acceso a esos identificadores. Además, el código actual puede hacer referencia a identificadores creados en cualquier parte, pero solo si el otro código ya se ha ejecutado y no ha bloqueado el acceso.

Los efectos de compartir identificadores SQL son los siguientes:
  • Puede abrir un conjunto de resultados en un pageHandler o programa llamado y obtener filas de ese conjunto en el otro código
  • Puede preparar una sentencia SQL en un código y ejecutar esa sentencia en otra
msgResource = "nombreLógico"
Identifica un empaquetamiento de recursos o archivo de propiedades Java utilizado en la presentación de mensajes de error. El contenido del empaquetamiento de recursos o archivo de propiedades se compone de un conjunto de claves y los valores relacionados.

Se visualiza un valor determinado en respuesta a la invocación de la función de sistema EGL sysLib.setError por parte del programa, cuando la invocación incluye la utilización de la clave correspondiente a ese valor.

onPageLoadFunction = "nombreFunción"
El nombre de una función de manejador de páginas que recibe el control cuando el JSP relacionado visualiza inicialmente una página Web. La función puede utilizarse para configurar los valores iniciales de los datos visualizados en la página. Esta propiedad era anteriormente la propiedad onPageLoad.
scope = session, scope = request
Especifica lo que ocurre después e enviar los datos de pageHandler a la página Web:
  • Si el ámbito se establece en session (lo que constituye el valor predeterminado), los valores de la variable pageHandler se retienen en la sesión de usuario y el último acceso de usuario del mismo pageHandler no vuelve a invocar la función OnPageLoad
  • Si el ámbito se establece en request, los valores de la variable pageHandler se pierden y el acceso de usuario del mismo manejador de páginas vuelve a invocar la función OnPageLoad

Es recomendable establecer esta propiedad explícitamente para documentar la decisión lo que afecta mucho al diseño y el funcionamiento de la aplicación Web.

throwNrfEofExceptions = no, throwNrfEofExceptions = yes

Especifica si un error leve provoca el lanzamiento de una excepción. El valor predeterminado es no. Para obtener información, consulte la sección Manejo de excepciones.

title = "literal"
La propiedad title es una propiedad de enlace, lo que significa que el valor asignado se utiliza como valor por omisión al trabajar en Page Designer. La propiedad especifica el título de la página.

literal es una serie entrecomillada.

validationBypassFunctions = ["nombresFunción"]
Identifica uno o varios manejadores de eventos, que son funciones de manejador de páginas asociadas con un control de botón en el JSP. Cada nombre de función está separado del siguiente por una coma.

Si especifica un manejador de eventos en este contexto, el entorno de ejecución de EGL se salta las validaciones de campos de entrada y páginas cuando el usuario pulsa el botón o en el enlace de hipertexto relacionado con el manejador de eventos. Esta propiedad resulta de utilidad para reservar una acción de usuario que finaliza el proceso del manejador de páginas y que transfiere inmediatamente el control a otro recurso Web.

validatorFunction = "nombreFunción"
Identifica la función de validador de manejador de páginas, que se invoca tras invocar todos los validadores de elementos, tal como se describe en Validación en aplicaciones Web creadas con EGL. Esta propiedad era anteriormente la propiedad validator.

El valor de la propiedad runValidatorFromProgram determina si la función de validación se encuentra en el bean de registro de UI o en el programa que recibe los datos del bean de registro de UI.

view = "nombreArchivoJSP"
Identifica el nombre y la vía de acceso al subdirectorio del JSP (Java Server Page) que está enlazado al manejador de páginas. nombreArchivoJSP es una serie entrecomillada.

El valor por omisión es el nombre del manejador de páginas, con la extensión de archivo .jsp. Si especifica esta propiedad, incluya la extensión de archivo, si la hay.

Al guardar o generar un manejador de páginas, EGL añade un archivo JSP al proyecto para la personalización posterior, a menos que un archivo JSP con el mismo nombre (el nombre especificado en la propiedad view) ya se encuentre en la carpeta adecuada (la carpeta WebContent\WEB-INF). EGL nunca altera temporalmente un JSP.

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