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.

Tabla Comparativa

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.

🔍 Resumen de la Evolución

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).

1. Separación de Responsabilidades

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.

2. Experiencia del Usuario (UX)

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.


📋 Palabras clave

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 →

⚠️ **GitHub.com Fallback** ⚠️