Hola,
Estoy con la parte de un aplicativo, que integra Struts2-Hibernate-Tiles, que es la de buscar.
Si la busqueda es solo para obtener un resuktado no hay ningún problema:
Código del método execute() del action:
Código:
public String execute() {
try {
hibernateSession = HibernateUtil.getSessionFactory().openSession();
hibernateSession.beginTransaction();
String queryBusqueda = "FROM Usuario WHERE " + getCriterio() +"='" + getParametro() + "'";
System.out.println(queryBusqueda);
usuario = (Usuario) hibernateSession.createQuery(queryBusqueda).uniqueResult();
//Limpia el campo de busqueda
setParametro("");
if(usuario==null){
addActionError("No existe");
return INPUT;
}
} catch (HibernateException e) {
e.printStackTrace();
}
return SUCCESS;
Parte de código de la JSP dónde se visualiza:
Código:
<div id="resultado">
<table id="cabecera" border="1">
<tr>
<th>Nombre</th>
<th>Apellido</th>
<th>NIFCIF</th>
<th>E-mail</th>
<th>Teléfono</th>
<th>Empresa</th>
<th>Departamento</th>
</tr>
<%-- <s:iterator value="listaUsuarios" var="usuario"> --%>
<tr>
<td><s:property value="usuario.nombre" />
<td><s:property value="usuario.apellido"/> </td>
<td><s:property value="usuario.NIFCIF" /></td>
<td><s:property value="usuario.email" /></td>
<td><s:property value="usuario.telefono"/></td>
<td><s:property value="usuario.empresa" />
<td><s:property value="usuario.departamento"/> </td>
</tr>
<%-- </s:iterator> --%>
</table>
</div>
Esto va de maravilla y el resultado és el de la
imagen. Pero ya sabeis que con un registro solo seria palo de busqueda porque la consulta puede devolver más de uno.
Por eso he provado con las moficiaciones siguientes:
- En el metodo execute() del action hago el siguiente cambio:
Código:
usuario = (Usuario) hibernateSession.createQuery(queryBusqueda).uniqueResult();
Por
Código:
listaUsuarios= (List<Usuario>) hibernateSession.createQuery(queryBusqueda).list();
Así devuelve una lista con los resultados que ha encontrado.
- En la JSP le quito el comentario al iterador:
Código:
<div id="resultado">
<table id="cabecera" border="1">
<tr>
<th>Nombre</th>
<th>Apellido</th>
<th>NIFCIF</th>
<th>E-mail</th>
<th>Teléfono</th>
<th>Empresa</th>
<th>Departamento</th>
</tr>
<s:iterator value="listaUsuarios" var="usuario">
<tr>
<td><s:property value="usuario.nombre" />
<td><s:property value="usuario.apellido"/> </td>
<td><s:property value="usuario.NIFCIF" /></td>
<td><s:property value="usuario.email" /></td>
<td><s:property value="usuario.telefono"/></td>
<td><s:property value="usuario.empresa" />
<td><s:property value="usuario.departamento"/> </td>
</tr>
</s:iterator>
</table>
</div>
Pues esto funciona, a medias,por que he dirigido el resulto hacia la consulta y se ve como en la
imagen, pero no en la JSP.
¿Donde puedo estar fallando?
Saludos