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

Problema con tabla en JSP utilizando displaytag

Estas en el tema de Problema con tabla en JSP utilizando displaytag en el foro de Java en Foros del Web. Hola, escribo por si alguien pudiera echarme una mano con este asunto. No consigo mostrar una tabla que requiere ordenación y paginación, en una página ...
  #1 (permalink)  
Antiguo 21/07/2008, 00:09
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema con tabla en JSP utilizando displaytag

Hola, escribo por si alguien pudiera echarme una mano con este asunto. No consigo mostrar una tabla que requiere ordenación y paginación, en una página JSP utilizando displaytag. Lo que hago es lo siguiente:

En la clase Action he creado una lista de prueba, ya que todavía no tengo acceso a la base de datos, de esta forma:

ArrayList lista = new ArrayList();
lista = crearLista();

request.setAttribute("listaPersonas",lista);

public ArrayList crearLista()
{
System.out.println("Para por crearLista");
ArrayList listaAux = new ArrayList();
listaAux.add("Rocio");
listaAux.add("Pablo");
listaAux.add("Isma");

return listaAux;

}

Después en la página JSP el código que añado es el siguiente:

<jsp:scriptlet>
request.getAttribute("listaPersonas");
</jsp:scriptlet>

<html>

<body>

<display:table name="listaPersonas">
<display:column property="nombre" title="Nombre de la persona"/>
</display:table>

</body>

</html>

No consigo que se muestre la tabla en la página JSP. La verdad es que estoy un poco perdida en este tema , ya que acabo de empezar, por eso agradecería si alguien me pudiera ayudarme y decirme si me falta algo o que es lo que tengo mal.

Gracias.

Un saludo.
  #2 (permalink)  
Antiguo 21/07/2008, 08:31
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola, buen dia.

¿Te marca algun error?

saludos!
  #3 (permalink)  
Antiguo 21/07/2008, 08:32
 
Fecha de Ingreso: junio-2008
Mensajes: 168
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Has probado usando formularios?
  #4 (permalink)  
Antiguo 21/07/2008, 11:18
 
Fecha de Ingreso: septiembre-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Por lo que veo, tu problema esta aqui:
Cita:
<display:column property="nombre" title="Nombre de la persona"/>
Tu bean es una lista compuesta por objetos tipo String.
El atributo "nombre" no esta definido en la clase String.

Mi solucion mas practica seria crear la clase Persona.

public class Persona{

private String nombre;

public getNombre(){
return this.nombre;
}

public setNombre(String nom){
this.nombre = nom;
}

}

Luego tu listaPeronas debera contener objetos de la clase Persona.
  #5 (permalink)  
Antiguo 24/07/2008, 02:25
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola, gracias por la ayuda. He creado la clase de tipo Persona, y le he asignado un nombre directamente para hacer la prueba desde la clase Action, de esta forma:

personaDTO.setNombre("Pepe");
request.setAttribute("nombre", personaDTO.getNombre());

En la página JSP pongo en siguiente código:

display:table name="listaPersonas">
<display:column property="nombre" title="Nombre de la persona"/>
</display:table>

Lo unico que consigo es que se muestre "null" en la JSP, no me aparece ni el título de la columna.

Gracias.

Un saludo.
  #6 (permalink)  
Antiguo 24/07/2008, 02:35
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Una vez que el objetoDTO contiene todos los valores, hago lo siguiente:

request.setAttribute("listaPersonas");

En la página JSP, lo recupero de esta forma:

<%= request.getAttribute("listaPersonas")%>

y pongo el código de la tabla.
  #7 (permalink)  
Antiguo 24/07/2008, 07:47
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola, has esto:

PersonaTO persona;
ArrayList listaPersonas=new ArrayList();

persona=new PersonaTO();
persona.setId("1");
persona.setNombre("Fulanito");
listaPersonas.add(persona);

persona=new PersonaTO();
persona.setId("2");
persona.setNombre("Perenganito");
listaPersonas.add(persona);

request.getSession().setAttribute("listaPersonas", listaPersonas);

Y en tu jsp has lo siguiente:

<display:table name="sessionScope.listaPersonas" id="personaTO" >
<display:column property="id">
</display:column>
<display:column title="Nombre" property="nombre">
</display:column>
</display:table>

Con eso deberia de funcionar.

saludos!
  #8 (permalink)  
Antiguo 25/07/2008, 08:28
Avatar de mloure  
Fecha de Ingreso: julio-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Mensaje Respuesta: Problema con tabla en JSP utilizando displaytag

Hola...

yo estoy usando esto tambien..

pero tengo la duda si se puede hacer.. por ej..

el objeto que le paso tiene un atributo lista..

por ej... persona: nombre edad hijos..

yo quiero que me muestre...

nombre edad nombrehijo1 edadhijo1
nombre edad nombrehijo2 edadhijo2
nombre edad nombrehijo3 edadhijo3

si alguien sabe si se puede hacer esto y sabe como se hace.. se lo agradeceria..

saludos
  #9 (permalink)  
Antiguo 25/07/2008, 08:49
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Problema con tabla en JSP utilizando displaytag

Cita:
Iniciado por mloure Ver Mensaje
Hola...

yo estoy usando esto tambien..

pero tengo la duda si se puede hacer.. por ej..

el objeto que le paso tiene un atributo lista..

por ej... persona: nombre edad hijos..

yo quiero que me muestre...

nombre edad nombrehijo1 edadhijo1
nombre edad nombrehijo2 edadhijo2
nombre edad nombrehijo3 edadhijo3

si alguien sabe si se puede hacer esto y sabe como se hace.. se lo agradeceria..

saludos
Tienes una lista dentro de una lista???

Es decir tienes una lista de personas y cada persona tiene una lista de hijos???
  #10 (permalink)  
Antiguo 25/07/2008, 09:00
Avatar de mloure  
Fecha de Ingreso: julio-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

si..
osea lo que quiero hacer es...
en esta web http://displaytag.sourceforge.net/11/

dice.. What can I do with it?
muestra un ejemplo normal y luego el que yo quiero hacer... pero en ningun lado explica como hacerlo..

:S

se
  #11 (permalink)  
Antiguo 25/07/2008, 09:17
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Problema con tabla en JSP utilizando displaytag

Cita:
Iniciado por mloure Ver Mensaje
si..
osea lo que quiero hacer es...
en esta web http://displaytag.sourceforge.net/11/

dice.. What can I do with it?
muestra un ejemplo normal y luego el que yo quiero hacer... pero en ningun lado explica como hacerlo..

:S

se
Segun la documentacion dice que debes de agregar el atributo group a la columna, que en tu caso es el nombre de la persona y la edad, ejemplo:

<display:column property="nombre" title="Nombre" group="1" />
<display:column property="edad" title="EDAD" group="2" />

No lo he probado, pero lo intentare y te dire, igual si te funciona avisanos.

saludos!
  #12 (permalink)  
Antiguo 25/07/2008, 09:30
Avatar de mloure  
Fecha de Ingreso: julio-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Muchas gracias por responder tan rapido..

tal vez el ejemplo que di no es el mas correcto...
son 2 ojbetos distintos... persona y supongamos tarea
entonces el objeto persona tiene losatributos nombre , edad y un List de tarea llamado tareas
teniendo la tarea los atributos de numero y descripcion...

lo que yo quiero listar es : nombre persona, edad persona, codigo tarea y descripcion de tarea...

lo que vi por ahi... es poner el en property un "tarea.codigo" ...
pero me tira el error que no encuentra el get en la clase persona... o sea q eso asi no funciona...


saludos
  #13 (permalink)  
Antiguo 25/07/2008, 12:27
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola, ya pude resolverlo.

Tienes tu clase Persona que tiene los atributos: nombre, edad, listaTareas
Tambien una clase Tareas que tiene: numero y descripcion

Entonces cada Persona tiene una lista de objetos de tipo Tareas.

Asi quedaria tu codigo:

Código PHP:
<display:table name="sessionScope.listaPersonas" id="parent" >
                                       
     <
display:column  title="Nombre" property="nombre">
     </
display:column>
     
    <
display:column  title="Nombre" property="edad">
     </
display:column>

   
   <
c:set var="tareas2" value="${parent.listaTareas}" />
                                                                               
     <
display:column title="TAREAS">
           <
display:table name="${tareas2}" id="child${parent_rowNum}"  class="simple sublist">
                <
display:column property="numero" class="textRed" />
                <
display:column property="descripcion" />
           </
display:table>
      </
display:column>

</
display:table
Espero te sirva, ahi nos avisas.

saludos!
  #14 (permalink)  
Antiguo 28/07/2008, 01:41
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola! gracias por la rápida contestación. He intentado lo que me dijsite, pero no consigo que se muestre la tabla, no se que puedo estar haciendo mal.

En mi clase java, tengo hecho lo siguiente:

ArrayList listaPersonas = new ArrayList();
PersonaDTO persona = new PersonaDTO();
Al objeto persona le he asignado datos.

listaPersonas.add(sexenioDTO);
request.getSession().setAttribute("listaPersonas", listaPersonas);

En la página JSP pongo el siguiente código:

<display:table name="sessionScope.listaPersonas" id="PersonaDTO" >
<display:column title="Nombre de la persona" property="nombre">
</display:column>
</display:table>

Gracias por todo.

Un saludo.
  #15 (permalink)  
Antiguo 28/07/2008, 01:42
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

En la línea:

listaPersonas.add(sexenioDTO);

sería en realidad:

listaPersonas.add(persona);
  #16 (permalink)  
Antiguo 28/07/2008, 06:12
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola de nuevo, creo que ya se por que no me muestra la tabla en la página jsp. Al mirar el código fuente de la JSP me he dado cuenta que no reconocía el tag "displaytable". Teniamos añadida la librería de ajaxtag pero no la de displaytag que puede que la anterior no la tenga incluida. Pues bien, he incluido el displaytag-1.1.jar y sus correspondientes dependencias. Dicha librería me solicita incluir la versión 2.1 de common-lag. La añado y en la página JSP incluyo esta línea:

<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>.

Al lanzar de nuevo el tomcat y probar el programa me aparece la siguiente excepcion al pasar de una página JSP a otra:

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/beanutils/NestedNullException

La verdad que no se porque sale esto ya que están añadidos el common-beanutils.jar y el common-collections.jar que es lo que pone que necesita la librería displaytag-1.1.jar.

Gracias,

Un saludo.
  #17 (permalink)  
Antiguo 28/07/2008, 09:52
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola,

Yo tambien tengo agregadas esas dos y tambien el jar de commons-lang-2.4.jar

¿Descargaste la ultima version de commons-beanutils.jar???

saludos!
  #18 (permalink)  
Antiguo 28/07/2008, 12:47
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola, la verdad es que no, porque con el common-lang si que me pedía la versión 2.1 pero del common-beanutils no. De todas formas, me podrías decir cual es la última versión? Gracias. Saludos.
  #19 (permalink)  
Antiguo 28/07/2008, 12:53
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Problema con tabla en JSP utilizando displaytag

Yo descargue esta:

http://apache.mirror99.com/commons/beanutils/binaries/commons-beanutils-1.7.0.zip

que es la 1.7

Espero te sirva

saludos!
  #20 (permalink)  
Antiguo 29/07/2008, 03:04
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Hola, ya me muestra la tabla correctamente.

Muchas gracias por todo!!

Un saludo.
  #21 (permalink)  
Antiguo 16/11/2008, 13:44
 
Fecha de Ingreso: noviembre-2008
Mensajes: 1
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problema con tabla en JSP utilizando displaytag

Pode me dizer porque este código não funciona no JSP 2.0?
Código PHP:
<display:table name="sessionScope.listaPersonas" id="parent" >
                                       
     <
display:column  title="Nombre" property="nombre">
     </
display:column>
     
    <
display:column  title="Nombre" property="edad">
     </
display:column>

   
   <
c:set var="tareas2" value="${parent.listaTareas}" />
                                                                               
     <
display:column title="TAREAS">
           <
display:table name="${tareas2}" id="child${parent_rowNum}"  class="simple sublist">
                <
display:column property="numero" class="textRed" />
                <
display:column property="descripcion" />
           </
display:table>
      </
display:column>

</
display:table
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 03:08.