Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Mostrar el resultado de una consulta

Estas en el tema de Mostrar el resultado de una consulta en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/06/2013, 03:30
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Mostrar el resultado de una consulta

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

Etiquetas: hibernate, query, struts2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:24.