< Anterior | Siguiente >

Lección 1.6: Crear una página de actualización

Llegados a este punto, se han creado páginas para la visualización y creación de listados para el sitio Web. En este ejercicio se creará una página que permite a los usuarios actualizar y suprimir listados. La página de actualización será muy parecida a la página de creación, salvo que los campos de entrada visualizarán datos de un registro existente para que el usuario los pueda cambiar.

En primer lugar, se creará un registro relacional, que representa un registro existente de la base de datos. A continuación creará un formulario de actualización de JavaServer Faces para este registro relacional y, tras algunos pequeños cambios, la página estará lista para las pruebas.

Crear el registro relacional de actualización

  1. Abra el archivo update_record.jsp realizando una doble pulsación sobre él en la vista Explorador de proyectos.
  2. Suprima el texto predeterminado Contenido predeterminado de bodyarea.
  3. En la vista Paleta, pulse en la bandeja Datos para expandirla.
  4. Arrastre el componente Registro relacional de la paleta al área vacía de contenido. Se abre la ventana Añadir registro relacional.
  5. En el campo Nombre, entre update_record.
  6. En Crear controles para, pulse Actualización de un registro existente.
  7. Asegúrese de que la opción Añadir controles de entrada/salida para visualizar el registro relacional en la páginas Web esté seleccionada.
  8. Pulse Siguiente.
  9. En el recuadro Tabla, expanda W5SAMPLE y seleccione ADS.
  10. Pulse Siguiente. Se abre la página Añadir registro relacional.

Filtrar los resultados

Un registro relacional sólo puede mostrar un registro de la base de datos. Por lo tanto, hay que filtrar la tabla de base de datos de forma que sólo aparezca un registro para la edición del usuario. (No fue necesario filtrar la base de datos en el ejercicio anterior ya que se creó un registro nuevo y, por lo tanto, no había resultados de la base de datos para filtrar). Como cada registro de la base de datos tiene un número de ID exclusivo, se filtrará el resultado para un número de ID determinado.

  1. La página Añadir registro relacional tiene una lista de enlaces de tarea. En Tareas, pulse Filtrar resultado. Se abre la ventana Filtros y se inserta la condición de filtro predeterminada ID = #{param.ID} en la columna Filtro. La ventana Filtros tiene este aspecto:
    Ventana Filtro.
    Este código filtra los registros de la base de datos de forma que sólo el registro con el número de ID especificado aparecerá en el registro relacional. Aprenderá más sobre esta condición en la sección Añadir una acción de fila, más adelante en este ejercicio. Pulse Cerrar.
  2. Pulse Siguiente. Se abrirá la página Configurar controles de datos.
  3. En la sección Campos a visualizar, quite la marca del recuadro de selección que hay junto a todos los nombres de campo, salvo para aquellos que quiere que se visualicen en el formulario de entrada:
    • ID
    • TITLE
    • DESCRIPTION
    • MAINCATEGORY
    • PRICE
    • PHONE
  4. Pulse sobre Arriba o Abajo para cambiar el orden de los nombres de campo de arriba hacia abajo, para que queden así:
    • ID
    • TITLE
    • DESCRIPTION
    • MAINCATEGORY
    • PRICE
    • PHONE
  5. Para el campo ID, seleccione Campo de salida de la lista desplegable en la columna Tipo de control. Aunque se quiera que los usuarios puedan ver el número de ID de registro, no se quiere que lo puedan actualizar. Al poner el campo ID en un campo de salida, se evitará el problema de los ID duplicados.
  6. Pulse Opciones. Se abre la ventana Opciones. Asegúrese de que la opción Botón Someter esté seleccionada. Entre Actualizar en el campo Etiqueta. Pulse Aceptar. La ventana Añadir registro relacional debe tener el aspecto siguiente:
    Ventana Añadir registro relacional.
  7. Pulse Finalizar para generar el formulario de actualización en la página, tal como se muestra a continuación:
    Página Formulario actualizado.

Programar los botones de actualización y supresión

Nuevamente, añadirá código para enviar al usuario a la página all_records.jsp para visualizar el registro modificado junto con el resto de registros.

  1. Pulse botón derecho sobre el botón Actualizar que acaba de crear en la página Web y seleccione Propiedades.
  2. Pulse Añadir regla. Se abre la ventana Añadir regla de navegación.
  3. En el menú desplegable Página, seleccione all_records.jsp. En el recuadro Esta regla la utiliza, pulse Sólo esta acción. Asegúrese de que el campo contenga: #{pc_Update_record.doUpdate_recordUpdateAction}. Pulse Aceptar.
  4. Repita los pasos del 1 al 3 para editar el código de la misma forma para el botón Suprimir de la página Web. Asegúrese de que el campo Esta regla la utiliza contenga: #{pc_Update_record.doUpdate_recordDeleteAction}
  5. Guarde la página. Si desea añadir un registro a la base de datos para verificar que volverá a la página all_records.jsp, ejecute new_record.jsp en el servidor de prueba.

Añadir una acción de fila

Ahora puede añadir una acción de fila a la tabla sobre all_records.jsp para que el usuario pueda seleccionar un registro de base de datos a actualizar. #{param.ID} representa el número de ID del registro que actualizará la página de actualización. Cuando el usuario pulsa una fila, el número de ID del registro se envía a la página update_record.jsp como el parámetro #{param.ID}. A continuación, el registro relacional filtrado que acaba de insertar en la página update_record.jsp se visualiza sólo dicho registro para su actualización.

  1. En la vista Explorador de proyectos, realice una doble pulsación sobre el archivo all_records.jsp para abrirlo en el editor. Pulse en cualquier lugar de la tabla de datos. Abra la vista Propiedades.
  2. En la vista Propiedades, pulse la pestaña Acciones de fila, bajo hx:dataTableEx de la lista de códigos HTML.
  3. Pulse Añadir una acción que se lleve a cabo al pulsar una fila. Se abre el diálogo Configurar una RowAction. Seleccione Al pulsar sobre la fila enviará una petición al servidor con la información de fila enviada en forma de parámetros y pulse Aceptar. Se añade una columna a la tabla de datos.
  4. En la vista Propiedades, pulse la pestaña hx:requestRowAction.
  5. Pulse Añadir regla. Se abre el diálogo Añadir regla de navegación.
  6. En el menú desplegable Página, seleccione update_record.jsp. En el recuadro Esta regla la utiliza, seleccione Sólo esta acción. El campo Sólo esta acción se cumplimenta automáticamente con #{pc_All_records.doRowAction1Action} que se creó al añadir la acción de fila. Pulse Aceptar. Si el campo no se cumplimenta automáticamente con el método que se indica más arriba, teclee el método en el campo y añada lo siguiente a ClassifiedsTutorial/Java Recursos: src/pagecode/All_records.java:
    public String doRowAction1Action() {
    				return "";
    }
  7. En la vista Propiedades, pulse la pestaña Parámetro bajo hx:requestRowAction. Pulse Añadir parámetro y teclee ID en el campo Nombre. Debe enlazar el parámetro ID a la columna ID. Enlazar la acción de fila a la columna ID de la lista de datos significa que cuando se pulsa la fila, el parámetro de petición será el ID del registro de la lista.
    1. Pulse Valor y a continuación pulse el botón Seleccionar objeto de datos de página .
    2. En la pestaña Objeto de datos, expanda all_recordlist (Service Data Object) > all_recordlist (ADS) y seleccione ID (java.lang.Integer).
    3. Pulse Aceptar.
Ahora, cuando el usuario pulsa una fila, el sitio Web permite al usuario actualizar información acerca del anuncio clasificado. Guarde el archivo y, si lo desea, pruebe la página. No olvide abrir antes all_records.jsp, ya que esta es la página que enlaza a update_record.jsp.

Punto de comprobación de lección

Ha terminado la Lección 1.6. En esta lección, ha aprendido cómo crear páginas web que actualizan los registros de una base de datos.

< Anterior | Siguiente >