1178

Capítulo 27 Aplicaciones Web: parte 2

un objeto 

CachedRowSet

. Si hace clic en el elemento 

addressesDataProvider

 en la ventana 

Esquema

, podrá ver 

en la ventana 

Propiedades

 que su propiedad 

cachedRowSet

 se estableció en 

addressesRowSet

, un objeto que 

implementa a la interfaz 

CachedRowSet

.

Paso 6: Modifi car la instrucción SQL de 

addressesRowSet

El objeto 

CachedRowSet

 envuelto por nuestro objeto 

addressesDataProvider

 está confi gurado de manera pre-

determinada para ejecutar una consulta SQL que seleccione todos los datos en la tabla 

Direcciones

 de la base de 

datos

LibretaDirecciones

. Para editar esta consulta SQL, puede expandir el nodo 

SessionBean

 en la ventana 

Esquema

 y hacer doble clic en el elemento 

addressesRowSet

 para abrir la ventana del editor de consultas (fi gura 

27.5). Nos gustaría editar la instrucción SQL de manera que los registros con apellidos duplicados se ordenen 
por apellido, y después por primer nombre. Para ello, haga clic en la columna 

Tipo de orden

 enseguida de la fi la 

LASTNAME

 y seleccione 

Ascendente

. Después, repita esto para la fi la 

FIRSTNAME

. Observe que la expresión

ORDERBY

 JHTP7.ADDRESSES.LASTNAME 

ASC

,

  

JHTP7.ADDRESSES.FIRSTNAME 

ASC

se agregó a la instrucción SQL al fi nal del editor.

Paso 7: Agregar validación

Es importante validar los datos del formulario en esta página, para asegurar que los datos puedan insertarse 
correctamente en la base de datos 

LibretaDirecciones

. Todas las columnas de la base de datos son de tipo 

varchar

 y tienen restricciones de longitud. Por esta razón, debemos agregar un 

Validador de longitud

 a cada 

componente

Campo de texto

, o establecer la propiedad 

maxLength

 de cada componente 

Campo de texto

. Opta-

mos por establecer la propiedad 

maxLength

 de cada uno. Los componentes

 Campo de texto

del primer nombre, 

apellido paterno, calle, ciudad, estado y código postal no pueden exceder a 20, 30, 100, 30, 2 y 5 caracteres, 
respectivamente.

Figura 27.5

  |  Edición de la instrucción SQL de 

addressesRowSet

.

Por último, arrastre un componente 

Grupo de mensaje

 a su página, a la derecha de la 

Tabla

. Un componente 

Grupo de mensaje

 muestra mensajes del sistema. Utilizamos este componente para mostrar un mensaje de error 

cuando falla un intento de contactarse con la base de datos. Establezca la propiedad 

showGlobalOnly

 del 

Grupo

de mensaje

 a 

true

, para evitar que se muestren aquí mensajes de error de validación a nivel de componente.

Archivo JSP para una página Web que interactúa con una base de datos

El archivo JSP para la aplicación se muestra en la fi gura 27.6. Este archivo contiene una gran cantidad de marca-
do generado para los componentes que vimos en el capítulo 26. En este ejemplo sólo hablaremos sobre el marcado 
para los componentes que son nuevos.

27_MAQ_CAP_27_DEITEL.indd1178

5/8/084:17:23PM