Curso de Struts 2 | 9. Ejercicio fútbol

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

En esta lección realizaremos un ejercicio práctico para gestionar información de equipos y jugadores en una aplicación web utilizando Struts 2. Implementaremos la funcionalidad para seleccionar equipos, mostrar los jugadores que pertenecen a esos equipos y vincular esta información mediante un formulario.

Descargar fotografías.

Curso de Struts 2 | Ejercicio fútbol 1

La lista de checks marcadas será tratada como lista, en vez de como array. Para consultar los jugadores en función de dicha lista (que he llamado codigosEquipo), utilizaremos la siguiente consulta de Hibernate:

hqlQuery = session.createQuery("from Jugador j where j.equipo.equipoCod in (:listaDeParametros)");
hqlQuery.setParameterList("listaDeParametros", codigosEquipo);

Explicación

  1. Consulta HQL:
    Se busca obtener los jugadores cuyos códigos de equipo coincidan con los elementos de la lista codigosEquipos.
  2. Parámetros dinámicos:
    codigosEquipos se pasa como una lista de valores que se incluirán en la cláusula IN.

Manejo de la lista en la clase Action

private List<Integer> codigosEquipo; en el action directamente me castea la lista de Strings en una lista de Integers.

Para recuperar las checks de equipos sin tener que llamar expresamente a un method desde el struts.xml puedo sobreescribir el método getEquipos de EquiposAction:

public List getEquipos() {
	equipos = equipoBO.getEquipos();
	return equipos;
}

Si necesitas sobreescribir el método que obtiene los equipos, puedes hacerlo llamándolo explícitamente desde el archivo struts.xml.

Ampliación del ejercicio

En el ejercicio anterior, al mostrar la lista de jugadores, mostrar también el equipo al que pertenecen.

Jugador.hbm.xml

<many-to-one lazy="false" name="equipo" class="com.pablomonteserin.model.data.Equipo" fetch="select">
	<column name="equipo_cod" />
</many-to-one>

equipos.jsp

<s:property value="equipo.nombre" />

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