2011-03-05 8 views
5

Soy nuevo en JSTL. ¿Cómo puedo usar JSTL <c:foreach> dentro JSP si paso por debajo de bean de ejemplocómo acceder a la lista de arreglos en jsp, si paso Bean

class B{ 
    private String value=""; 
    private ArrayList arrayVals; 
    public String getvalue(){ 
     return value; 
    } 
    public String getarrayVals(){ 
     return arrayVals; 
    } 
} 

pasaré Bean "B" solamente. Intenté como a continuación, pero jsp no compilado. Por favor, ayúdame.

<c:forEach items="${B.getarrayVals}" var="book"> 
    <c:out value="{book.title}"/> 
</c:forEach> 
+0

¿Qué error ¿estas pillando? – krock

Respuesta

10

En primer lugar, debe precisarse getarrayVals()getArrayVals(), y debe devolver una lista, no es una cadena, obviamente.

Ahora supongamos que el servlet o acción establece un "b" atributo de tipo B como esto:

request.setAttribute("b", theBInstance); 

y luego envía a una página JSP, puede acceder a la lista en el atributo "b" de esta manera:

${b.arrayVals} 

Debe hacer referencia a la instancia B por el nombre del atributo de solicitud, no por su nombre de clase. Si nombra el atributo foo, entonces use debe usar ${foo.arrayVals}. Esto simplemente se imprimirá en toString de la lista. Si desea obtener el elemento en el índice 3 de la lista, puede utilizar

${b.arrayVals[3]} 

Y si se quiere iterar sobre los elementos de la lista, utilice el directorio c: forEach construcción:

<c:forEach items="${b.arrayVals}" var="element"> 
    The element value is ${element} <br/> 
</c:forEach> 
Cuestiones relacionadas