Form_Modificar.jsp muestra un formulario HTML con los valores actuales del libro. Tambi�n tiene un bot�n para enviar el formulario y un enlace para abortar la solicitud.
�Prop�sito de la P�gina Form_Modificar.jsp
El prop�sito de esta p�gina es producir una p�gina web que muestre los datos del libro a modificar. El usuario podr�a o modificar los datos del formulario y enviar el formulario para su procesamiento transfiriendo el control a la p�gina Modificar.jsp o abortar el proceso seleccionando un enlace de vuelta a la p�gina Index.jsp. La siguiente imagen nos muestra un ejemplo de la p�gina Form_Modificar.jsp:

�Crear el Aspecto de la P�gina Form_Modificar.jsp
Este c�digo HTML crea el aspecto de la p�gina con un enlace en la parte inferior hacia la p�gina Index.jsp etiquetado como "Volver a la P�gina Inicial [el libro no se modificar�]".
<%@ page language="java" import="java.util.*, libreria.*" %> <html> <head> <title>Librer�a -- Modificando el Libro <%= request.getParameter ("id") %></title> </head> <body bgcolor="#ffffee"> <h1><center>Librer�a -- Modificando el Libro <%= request.getParameter ("id") %></center></h1> -- aqu� va el c�digo que recupera el libro a modificar -- -- aqu� va el c�digo para mostrar el formulario -- <hr> <center> <destacar><a href="Index.jsp">Volver a la P�gina Inicial [el libro no se modificar�]</a></destacar> </center> </body> </html>
�Recuperar los Datos del libro a Modificar
Este c�digo Java recupera el ejemplar de libreria.LibrosBD almacenado en el atributo BaseDatos de la aplicaci�n web por libreria.ContextListener:
LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
Luego obtiene de la base de datos el libro cuyo id se ha pasado como par�metro a esta p�gina desde Index.jsp:
Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id"));
�Mostrar el Formulario
Este c�digo HTML mezclado con c�digo Java crea un formulario cuya acci�n es "postear" los datos modificados del libro que hay en los campos de entrada a la p�gina Modificar.jsp:
<form method="post" action="Modificar.jsp">
Uno de estos campos es un campo oculto que contiene el id del libro a modificar -- esto nos asegura que el par�metro id pasado desde la p�gina Index.jsp se pasa a la p�gina Modificar.jsp.
<input name="id" type="hidden" value="<%= libro.getId () %>">
Luego se muestra una tabla; en la columna izquierda de la tabla se muestran los nombres de los campos; la columna derecha contiene los campos de entrada pre-rellenos con los datos existentes:
<table align="center" cellpadding="2" cellspacing="2" border="1" width="80%" bgcolor="#dddddd"> <tr> <th>ISBN:</th> <td><input name="isbn" type="text" value="<%= libro.getIsbn () %>"></td> </tr> <tr> <th>Editorial:</th> <td><input name="editorial" type="text" value="<%= libro.getEditorial() %>"></td> </tr> <tr> <th>Autor:</th> <td><input name="autor" type="text" value="<%= libro.getAutor () %>"></td> </tr> <tr> <th>Categor�a:</th> <td><input name="categoria" type="text" value="<%= libro.getCategoria () %>"></td> </tr> <tr> <th>T�tulo:</th> <td><input name="titulo" type="text" value="<%= libro.getTitulo () %>"></td> </tr> <tr> <th>Ubicaci�n:</th> <td><input name="ubicacion" type="text" value="<%= libro.getUbicacion () %>"></td> </tr> </table>
Luego se define un campo oculto que simula la pulsaci�n del bot�n submit cuando se pulsa la tecla return:
<input name="pagemode" type="hidden" value="submit">
Luego se muestra el bot�n de env�o del formulario etiquetado "Modificar el Libro nnn":
<input align="center" type="submit" value="Modificar el Libro <%= request.getParameter ("id")%>">
Cuando se pulsa el bot�n de env�o, se pasan los par�metros isbn, editorial, autor, categoria, titulo y ubicacion a la p�gina Modificar.jsp
�C�digo Completo de la P�gina Form_Modificar.jsp
<%@ page language="java" import="java.util.*, libreria.*" %> <html> <head> <title>Librer�a -- Modificando el Libro <%= request.getParameter ("id") %></title> </head> <body bgcolor="#ffffee"> <h1><center>Librer�a -- Modificando el Libro <%= request.getParameter ("id") %></center></h1> <% LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos"); Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id")); if (libro != null){ %> <form method="post" action="Modificar.jsp"> <input name="id" type="hidden" value="<%= libro.getId () %>"> <table align="center" cellpadding="2" cellspacing="2" border="1" width="80%" bgcolor="#dddddd"> <tr> <th>ISBN:</th> <td><input name="isbn" type="text" value="<%= libro.getIsbn () %>"></td> </tr> <tr> <th>Editorial:</th> <td><input name="editorial" type="text" value="<%= libro.getEditorial() %>"></td> </tr> <tr> <th>Autor:</th> <td><input name="autor" type="text" value="<%= libro.getAutor () %>"></td> </tr> <tr> <th>Categor�a:</th> <td><input name="categoria" type="text" value="<%= libro.getCategoria () %>"></td> </tr> <tr> <th>T�tulo:</th> <td><input name="titulo" type="text" value="<%= libro.getTitulo () %>"></td> </tr> <tr> <th>Ubicaci�n:</th> <td><input name="ubicacion" type="text" value="<%= libro.getUbicacion () %>"></td> </tr> </table> <br> <center> <input name="pagemode" type="hidden" value="submit"> <input align="center" type="submit" value="Modificar el Libro <%= request.getParameter ("id") %>"> </center> <% } else { %> <center> <h2><font color="#cc0000">No se pudo encontrar el libro <%= request.getParameter ("id") %></font></h2> </center> <% } %> <hr> <center> <destacar><a href="Index.jsp">Volver a la P�gina Inicial [el libro no se modificar�]</a></destacar> </center> </body> </html>
�Modificar.jsp
Modificar.jsp muestra en una tabla los campos modificados del libro recibido. Luego intenta modificar la base de datos y muestra el �xito o el fracaso del intento.
�Prop�sito de la P�gina Modificar.jsp
El prop�sito de esta p�gina es producir una p�gina web con una tabla que muestre los par�metros del libro pasados desde la p�gina Form_Modificar.jsp; realmente realiza la actualizaci�n de la base de datos; muestra si la base de datos se ha actualizado con �xito o no; y espera hasta que el usuario pulse el enlace de vuelta a la p�gina Index.jsp. Aqu� tenemos un ejemplo de la p�gina Modificar.jsp:

�Aspecto de la P�gina Modificar.jsp
Este c�digo HTML genera el aspecto de la p�gina con un enlace a Index.jsp en la parte inferior de la p�gina:
<%@ page language="java" import="java.util.*, libreria.*" %> <html> <head> <title>Librer�a: Modificando el Libro <%= request.getParameter ("id") %></title> </head> <body bgcolor="#ffffee"> <h1><center>Librer�a: Modificando el Libro <%= request.getParameter ("id") %></center></h1> -- aqu� va el c�digo que muestra la tabla -- -- aqu� va el c�digo que actualiza la base de datos y muestra el �xito o el fracaso de la operaci�n -- <center> <destacar><a href="Index.jsp">Volver a la P�gina Inicial</a></destacar> </center> </body> </html>
�Mostrar la Tabla
Este c�digo HTML mezclado con c�digo Java muestra la tabla; en la columna izquierda se muestran los nombres de los campos; la columna derecha contiene los datos del libro recuperados de los par�metros:
<table align="center" cellpadding="2" cellspacing="2" border="1" width="80%" bgcolor="#dddddd"> <tr> <th>ISBN:</th> <td><%= request.getParameter ("isbn") %></td> </tr> <tr> <th>Editorial:</th> <td><%= request.getParameter ("editorial") %></td> </tr> <tr> <th>Autor:</th> <td><%= request.getParameter ("autor") %></td> </tr> <tr> <th>Categor�a:</th> <td><%= request.getParameter ("categoria") %></td> </tr> <tr> <th>T�tulo:</th> <td><%= request.getParameter ("titulo") %></td> </tr> <tr> <th>Ubicaci�n:</th> <td><%= request.getParameter ("ubicacion") %></td> </tr> </table>
�Actualizar la Base de Datos y Mostrar el �xito o el Fracaso
Este c�digo Java mezclado con c�digo HTML recupera el ejemplar de libreria.LibrosBD almacenado en el atributo BaseDatos de la aplicaci�n por libreria.ContextListener:
LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
Esto construye un objeto Libro desde los par�metros pasados desde Form_Modificar.jsp:
Libro libro = new Libro ( request.getParameter ("id"), request.getParameter ("isbn"), request.getParameter ("editorial"), request.getParameter ("autor"), request.getParameter ("categoria"), request.getParameter ("titulo"), request.getParameter ("ubicacion") );
Luego se modifica el libro en la base de datos:
int rowsAffected = librosBD.modificarLibro (libro);
Si s�lo se ve afectada una fila por la actualizaci�n de la base de datos se muestra el mensaje "Se ha modificado el Libro nnn" en color verde, si no es as�, se muestra el mensaje "No se pudo modificar el libro nnn" en color rojo:
if (rowsAffected == 1) { %> <center> <h2><font color="#00cc00">Se ha modificado el Libro <%= request.getParameter ("id") %></font></h2> </center> <% } else { %> <center> <h2><font color="#cc0000">No se Pudo modificar el Libro <%= request.getParameter ("id") %></font></h2> </center> <% }
�C�digo Completo de la P�gina Modificar.jsp
<%@ page language="java" import="java.util.*, libreria.*" %> <html> <head> <title>Librer�a: Modificando el Libro <%= request.getParameter ("id") %></title> </head> <body bgcolor="#ffffee"> <h1><center>Librer�a: Modificando el Libro <%= request.getParameter ("id") %></center></h1> <table align="center" cellpadding="2" cellspacing="2" border="1" width="80%" bgcolor="#dddddd"> <tr> <th>ISBN:</th> <td><%= request.getParameter ("isbn") %></td> </tr> <tr> <th>Editorial:</th> <td><%= request.getParameter ("editorial") %></td> </tr> <tr> <th>Autor:</th> <td><%= request.getParameter ("autor") %></td> </tr> <tr> <th>Categor�a:</th> <td><%= request.getParameter ("categoria") %></td> </tr> <tr> <th>T�tulo:</th> <td><%= request.getParameter ("titulo") %></td> </tr> <tr> <th>Ubicaci�n:</th> <td><%= request.getParameter ("ubicacion") %></td> </tr> </table> <% LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos"); Libro libro = new Libro ( request.getParameter ("id"), request.getParameter ("isbn"), request.getParameter ("editorial"), request.getParameter ("autor"), request.getParameter ("categoria"), request.getParameter ("titulo"), request.getParameter ("ubicacion") ); int rowsAffected = librosBD.modificarLibro(libro); if (rowsAffected == 1) { %> <center> <h2><font color="#00cc00">Se ha modificado el Libro <%= request.getParameter ("id") %></font></h2> </center> <% } else { %> <center> <h2><font color="#cc0000">No se pudo modificar el Libro <%= request.getParameter ("id") %></font></h2> </center> <% } %> <hr> <center> <destacar><a href="Index.jsp">Volver a la P�gina Inicial</a></destacar> </center> </body> </html>