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.
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
- Consulta HQL:
Se busca obtener los jugadores cuyos códigos de equipo coincidan con los elementos de la listacodigosEquipos
. - Parámetros dinámicos:
codigosEquipos
se pasa como una lista de valores que se incluirán en la cláusulaIN
.
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" />