Comparativa persona form - eliizquierdo/material_programacion_avanzada2026 GitHub Wiki
📦 Proyecto:
mini-crud2— ⬇️ Descargar ZIP · ☁️ Abrir en Codespace
El formulario persona-form.jsp ya usaba Expression Language (EL) desde la Fase 1 (para mostrar la ruta base y armar las URLs). Lo que agregamos ahora es JSTL (<c:if>) para manejar dinámicamente los mensajes de error y precargar los datos si algo falla.
| Aspecto | Versión Anterior (Sin validación) | Versión Nueva (Con Validación y JSTL) | Explicación del Cambio |
|---|---|---|---|
| Declaración JSTL | No existe (no hacía falta, no había condicionales). | <%@ taglib prefix="c" uri="jakarta.tags.core" %> |
Se agrega porque ahora necesitamos <c:if> para el mensaje de error condicional. |
| Manejo de Errores | No existe. Si falla el agregar, el usuario ve un error 500 de Tomcat. |
Se usa <c:if test="${requestScope.error != null}"> para mostrar el mensaje. |
El Servlet ahora usa forward y establece el atributo "error". JSTL se encarga de mostrarlo solo si existe. |
Campo Código |
<input type="number" name="codigo" required /> (siempre vacío) |
<input type="number" name="codigo" required value="${requestScope.persona.codigo}" /> |
Se añade el atributo value="${...}". Esto es vital para la usabilidad, ya que mantiene el dato ingresado por el usuario visible si el servidor detecta un error (por ejemplo, código duplicado). |
Campo Nombre |
<input type="text" name="nombre" required /> (siempre vacío) |
<input type="text" name="nombre" required value="${requestScope.persona.nombre}" /> |
Misma razón que el código. Asegura que el usuario no pierda el nombre si tiene que corregir el código. |
El cambio principal no es solo añadir líneas de código, sino migrar a un paradigma de programación web más robusto (MVC con validación).
| Capa | Versión Anterior | Versión Nueva |
|---|---|---|
| Controlador (Servlet) | Simplemente lee datos y llama al DAO. | Valida datos (unicidad, formato) y, en caso de error, informa a la vista mediante atributos de request. |
| Vista (JSP) | Ya usaba EL para mostrar datos y armar URLs, pero no tenía forma de mostrar errores de validación. | Suma JSTL (<c:if>) para mostrar el error condicionalmente y precargar los campos. |
Antes: Un error de código duplicado o formato lleva a una página de error 500 del servidor. Flujo roto.
Ahora: Un error de validación devuelve al usuario al mismo formulario, el error aparece en un recuadro rojo, y los datos que ingresó no se han borrado. Flujo controlado.
Este enfoque garantiza que el control de la aplicación esté siempre en manos del Servlet, que decide si los datos son aptos para la persistencia o si necesitan ser corregidos por el usuario.
persona-form.jsp · JSTL · c:if · EL · Expression Language · requestScope · validación · código duplicado · unicidad · formulario robusto · precarga de datos · error 500 · MVC
🧠 Autoevaluación — Mini-CRUD con MVC
← JSTL: unicidad de código · 🏠 Inicio · Comparativa JSP puro vs MVC →
