Curso de Struts 2 | 3. Formularios

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

En esta lección exploraremos cómo trabajar con formularios en Struts 2, incluyendo el uso de etiquetas específicas, validación y manejo de datos enviados al servidor. Además, realizaremos ejercicios prácticos para consolidar los conceptos aprendidos.

Creación básica de un formulario

nombre.jsp

<%@ taglib prefix="s" uri="/struts-tags"%>
<s:form method="post" action="Saludar">				
	<s:textfield label="Introduce tu nombre" name="titulo.nombre"/>
	<s:submit/>
</s:form>

Con este código, generamos un formulario básico en Struts 2. La etiqueta <s:textfield> crea un campo de entrada para texto, mientras que <s:submit> añade un botón para enviar los datos.

Ejercicios

Ejercicio 1. Cacluladora

Crear una acción llamada SumadorAction con tres propiedades (n1, n2 y suma), junto con sus métodos getter y setter. El método execute realizará la suma de n1 y n2 y devolverá el resultado.

Tareas:

  1. Mostrar el resultado de la suma en una nueva página.
  2. Diseñar un formulario en JSP para ingresar dos números.
  3. Enviar los valores al servidor al hacer clic en el botón submit.

Ejercicio 2. Operaciones con valores harcodeados

Hacer una calculadora. Gestionar y realizar la operación desde dentro del método execute

Combo con valores harcodeados en struts2:

<s:select list="#{'value1':'txtMostrado1', 'value2':'txtMostrado2'}" name="operacion"/>

Este enfoque permite presentar una lista de opciones al usuario que puede seleccionar y enviar al servidor.

Ejercicio 3. Librería

Este ejercicio incluye varias operaciones: alta, consulta, modificación y eliminación de libros en una librería. Estas operaciones se manejan con una única clase de acción.

Operaciones:

  1. Alta: Permite introducir un título y precio para un nuevo libro.
  2. Consulta: Lista los libros disponibles.
  3. Modificación: Editar propiedades como el título o precio.
  4. Eliminación: Retirar un libro de la lista.
Curso de Struts 2 | Formularios 1

Notas a tener en cuenta para resolver estte ejercicio

En struts2 utilizaremos una única clase java que será llamada por todos los action de un mismo mantenimiento (alta, baja, modificación y consulta).

Mapear propiedades:

Puedo mapear directamente las propiedades de un bean si desde la vista utilizo el nombre del bean junto con la propiedad que quiero mapear:

<s:textfield name="paciente.nombre" value="%{paciente.nombre}" />

Recorrer una colección

<s:iterator value="libros">
<s:property value="titulo"/> -
<s:property value="precio"/>
</s:iterator>

Recomendación:

Usar decimal para el precio en la base de datos, en lugar de Float o Double. Esto nos ahorrará problemas al trabajar con los decimales.

Ejercicio. Usar Treemap

Realizar el ejercicio anterior utilizando un TreeMap de libros que será almacenado en la sesión. Al iniciar la aplicación el SessionListener almacenará en la sesión un treemap con los libros que hay en la base de datos. A partir de ese momento, las operaciones se realizarán directamente sobre la sesión, sin utilizar la base de datos.

Uso de la sesión desde un action de Struts 2:

Map session = ActionContext.getContext().getSession();
TreeMap libros = (TreeMap) session.get("libros");

Uso de la sesión desde un listener:

HttpSession session = arg0.getSession();
session.setAttribute("libros", new TreeMap());

Recorrer un TreeMap con iterator:

<s:iterator value="libros" >
	<s:property value="value.titulo"/></a></td>
</s:iterator>

Recorrer una collection almacenada en la session:

<s:iterator value="#session.personas">
	<s:property value="nombre"/><br/>
	<s:property value="edad"/><br/>
	<hr/>
</s:iterator>

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.