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

Pasar parámetros con Struts en un <a href

Estas en el tema de Pasar parámetros con Struts en un <a href en el foro de Java en Foros del Web. Hola a tod@s, Ojalá puedan ayudarme... Estoy intentando mostrar el resultado de un <logic:iterate> con Struts y por cada fila que muestro al final quiero ...
  #1 (permalink)  
Antiguo 06/09/2008, 17:39
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Pasar parámetros con Struts en un <a href

Hola a tod@s,

Ojalá puedan ayudarme...

Estoy intentando mostrar el resultado de un <logic:iterate> con Struts y por cada fila que muestro al final quiero poner un enlace para eliminar dicho registro. El código es el siguiente:

<logic:iterate id="res" name="adminresBean" scope="request" type="vuelos.beans.InfoAdminResBean">

<tr>
<td nowrap>

<bean:write name="res" property="nombre"/></td>

<td nowrap>
<bean:write name="res" property="apellido1"/>&nbsp;<bean:write name="res" property="apellido2"/></td>

<td nowrap>
<bean:write name="res" property="dni"/></td>

<td nowrap>
<bean:write name="res" property="compania"/></td>

<td nowrap align="center">
<a href="EliminarAdminRes.do?usuario=<bean:write name='res' property='id_usuario'/>"><img src="./img/cancelar.gif"></a></td></tr>
</logic:iterate>

Si quito del último enlace lo siguiente: <bean:write name='res' property='id_usuario'/> funciona correctamente todo...Si lo pongo no me muestra ningún dato...Está claro que el problema está ahí pero no sé cómo solucionarlo.

Por favor, ¿alguna sugerencia al respecto?. Muchísimas gracias anticipadas.
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #2 (permalink)  
Antiguo 06/09/2008, 18:35
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

Bueno, he avanzado algo aunque lo que me pasa es de Expediente X...

Resulta que poniendo esto:

<a href="EliminarAdminRes.do?usuario=<bean:write name='res'/>" onclick="return confirmar('¿Está seguro?')"><img src="./img/cancelar.gif"></a>

funciona bien...cuando pongo: <bean:write name='res' property='id_usuario'/>

ya no me funciona...y ojo, si pongo cualquier otro (por ejemplo, <bean:write name='res' property='apellido2'/>) síiiiiiiiiiiiii me funciona!!!!

Lo he revisado por todos lados y no sé a dónde va a parar el id_usuario...
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #3 (permalink)  
Antiguo 07/09/2008, 05:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 32
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

Adjuntanos, si quieres, la clase bean (InfoAdminResBean) y el código con el que creas previamente la colección. A priori, el problema tiene que venir de allí...
  #4 (permalink)  
Antiguo 07/09/2008, 05:36
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

He estado probando con otras entidades y únicamente no me muestra las claves primarias en las tablas, ¿qué cosa más rara no?????

- InfoAdminResBean:


package vuelos.beans;

import java.io.Serializable ;

public class InfoAdminResBean implements Serializable {

private String nombre;
private String apellido1;
private String apellido2;
private String dni;
private String compania;
private String id_usuario;


public InfoAdminResBean() {
}

public String getNombre() {
return nombre;
}

public void setNombre(String valor) {
nombre = valor;
}

public String getApellido1() {
return apellido1;
}
public void setApellido1(String valor) {
apellido1 = valor;
}

public String getApellido2() {
return apellido2;
}
public void setApellido2(String valor) {
apellido2 = valor;
}

public String getDni() {
return dni;
}
public void setDni(String valor) {
dni = valor;
}

public String getCompania() {
return compania;
}

public void setCompania(String valor) {
compania = valor;
}

public String getIdUsuario(){
return id_usuario;
}

public void setIdUsuario(String valor){
id_usuario = valor;
}
}

- Código que crea la colección:
....

stmt = con.createStatement();
res = stmt.executeQuery(
"Select u.nombre, u.apellido1, u.apellido2, u.dni, a.nombre, u.id_usuario" +
" from USUARIO u, AEROLINEA a where u.perfil = 2 and u.compania = a.id_aerolinea");

Vector adminresBean = new Vector();
// Hacemos una cuenta del número de Administradores de Reservas
while (res.next()) {
InfoAdminResBean resbean = new InfoAdminResBean();

resbean.setNombre(res.getString(1));
log.debug(" Nombre: " + res.getString(1));
resbean.setApellido1(res.getString(2));
log.debug("Apellido1: " + res.getString(2));
resbean.setApellido2(res.getString(3));
log.debug("Apellido2: " + res.getString(3));
resbean.setDni(res.getString(4));
log.debug("Dni: " + res.getString(4));
resbean.setCompania(res.getString(5));
log.debug("Compañia: " + res.getString(5));
resbean.setIdUsuario(res.getString(6));
log.debug("Identificador del usuario: " + res.getString(6));

adminresBean.addElement(resbean);

}
....
// Enviamos el vector de Administradores de Reservas Bean
req.setAttribute("adminresBean", adminresBean);

Insisto, lo único que diferencia a los campos que se muestran y el que no (id_usuario) es que id_usuario es clave primaria en la tabla USUARIO pero, ¿es posible que sea esta la causa?...A mí me extraña pero todo es posible...
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #5 (permalink)  
Antiguo 07/09/2008, 08:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 32
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

Pues a simple vista parece todo correcto . Lo de la clave primaria no tiene nada que ver, ya que es algo que la clase no conoce. Vamos, que la sacas de la base de datos (que es quien lo sabe) y después se almacena en un objeto, como otro campo más...

¿Has probado a sacar por pantalla el valor resbean.getIdUsuario()?. Veo que tienes en debug el res.getString(6) que debería tener el mismo valor, pero por probar... es lo único que se me ocurre, que la base de datos esté devolviendo por alguna razón null en ese campo (o que sea el método getString el que lo provoque al convertirlo desde int, que supongo que será el tipo que le tienes asignado en la base de datos, ¿no?), y que eso sea lo que esté entrando en el objeto bean...

También se me ocurre que podrías probar con una tabla donde la clave primaria fuera de otro tipo (por ejemplo string) y ver si se sigue dando el problema... si es que no lo has probado ya...

Última edición por Wyatt_2009; 07/09/2008 a las 08:12
  #6 (permalink)  
Antiguo 07/09/2008, 08:12
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

En el log que se almacena en el servidor haciendo debug se almacena correctamente, es decir, el campo id_usuario se muestra correctamente. El problema es al pasar al jsp el vector de beans que no sé qué circunstancia "paranormal" muestra todos los parámetros excepto el id_usuario...El id_usuario es un varchar2 en base de datos...
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #7 (permalink)  
Antiguo 07/09/2008, 08:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

Otra vuelta de tuerca más a esto...

Este es el error que arroja el debugger de NetBeans:

javax.servlet.jsp.JspException: No getter method for property: "id_usuario" of bean: "res"

Esto ya ha terminado de descolocarme...
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #8 (permalink)  
Antiguo 07/09/2008, 09:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 32
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

Pues sí que es raro, sí . Prueba con esto a ver que tal:

Esto lo importas en la jsp del mismo modo que tienes bean y logic:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

Y después, sustituye tu enlace por este otro:
<html:link href="EliminarAdminRes.do" paramId="usuario" paramName="res" paramProperty="id_usuario"><img src="./img/cancelar.gif"></html:link>
  #9 (permalink)  
Antiguo 07/09/2008, 09:06
 
Fecha de Ingreso: agosto-2008
Mensajes: 32
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

Ah vale, esa excepción lo aclara , creo que ya sé de qué puede ser... el método debe llamarse igual que el atributo y falta el guión bajo (_). Yo que tú renombraría el atributo a idUsuario...
  #10 (permalink)  
Antiguo 07/09/2008, 09:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

El método debe llamarse igual que el atributo...eso mismo me dije anoche...cambié el nombre del atributo a idusuario y los setters y getters a setIdUsuario y getIdUsuario y tampoco me funcionaba...pero ahora mismo acabo de cambiarlos a idusuario y a setIdusuario y getIdusuario y sí funciona!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Toda la culpa la tenía una U q debía de ser u!!!!!

Ay mi madre, vaya comienzo con Struts, nunca se me olvidará esto...

Qué decirte Wyatt_2009, q muchas gracias por acompañarme y servirme de inspiración para alcanzar la solución q muchas veces está a la alcance de nuestras manos y no nos damos cuenta...

De corazón gracias y para lo q quieras ya sabes dónde puedes encontrarme.

Un cordial saludo
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #11 (permalink)  
Antiguo 07/09/2008, 09:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 32
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar parámetros con Struts en un <a href

Jeje, nada hombre, para eso estamos... es algo que suele pasar en estos casos: el error más tonto es el más difícil de ver.

Saludos y suerte con struts .
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 08:38.