Java - Problema al mostra datos de Lista.

   
Vista:

Problema al mostra datos de Lista.

Publicado por Alejandro (4 intervenciones) el 23/06/2017 05:14:19
Hola!, tengo una lista tipo <Object> en la que contiene datos de 2 clases diferentes, pero a travez de un metodo saco lo que necesito y lo guardo en un List. Dejo el codigo porseacaso.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public List lista_materiales(List<Object[]> datos) {
 
    List lista_filtro = new ArrayList();
    for (Object[] obj : datos) {
        Materiales mat = new Materiales();
        CategoriasMateriales cat = new CategoriasMateriales();
        mat = (Materiales) obj[0];
        cat = (CategoriasMateriales) obj[1];
 
        lista_filtro.add(mat.getIdMaterial());
        lista_filtro.add(mat.getCantidadReciclada());
 
        lista_filtro.add(cat.getIdCategoria());
        lista_filtro.add(cat.getNombreCategoria());
 
    }
    return lista_filtro;
 
}

esta lista la mando al ServletContext y la intento mostrar atravez de un foreach en un jsp, pero me dice este error: org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: The class 'java.lang.String' does not have the property 'idMaterial'.

Este es el foreach que use: (los nombres despues de los row, son igual a los atributos de las clases)
1
2
3
4
5
6
7
8
9
10
<c:forEach var="row" items="${lista_filtro}">
    <tr>
 
        <td><c:out value="${row.idMaterial}"/></td>
        <td><c:out value="${row.cantidadReciclada}"/></td>
        <td><c:out value="${row.idCategoria}"/></td>
        <td><c:out value="${row.nombreCategoria}"/></td>
    </tr>
 
</c:forEach>

De que otra manera puedo mostrar el contenido de la lista?. Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema al mostra datos de Lista.

Publicado por Costero (34 intervenciones) el 23/06/2017 14:52:15
Error esta en que estas adding String a la Lista, Y claro esta el String class no tiene ninguna de las propiedades que el forEach esta tratando de adquirir.

Lo correcto es crear un object con esas propiedades y add a la lista. Algo asi:

1
2
3
4
5
6
7
8
9
10
11
public List lista_materiales(List<Object[]> datos) {
 
        List lista_filtro = new ArrayList();
 
        for (Object[] obj : datos) {
 
            lista_filtro.add(new MaterialObj((Materiales) obj[0], (CategoriasMateriales) obj[1]));
        }
        return lista_filtro;
 
    }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class MaterialObj {
 
        String idMaterial;
        String cantidadReciclada;
        String idCategoria;
        String nombreCategoria;
 
        public MaterialObj(Materiales materiales, CategoriasMateriales categoriasMateriales) {
            this.idMaterial = materiales.getIdMaterial();
            this.cantidadReciclada = materiales.getCantidadReciclada();
            this.idCategoria = categoriasMateriales.getIdCategoria();
            this.nombreCategoria = categoriasMateriales.getNombreCategoria();
        }
 
        public String getIdMaterial() {
            return idMaterial;
        }
 
        public String getCantidadReciclada() {
            return cantidadReciclada;
        }
 
        public String getIdCategoria() {
            return idCategoria;
        }
 
        public String getNombreCategoria() {
            return nombreCategoria;
        }
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema al mostra datos de Lista.

Publicado por Alejandro (4 intervenciones) el 24/06/2017 01:59:45
Gracias!, Me funciono.!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad