Sé que es muy tarde para responder a esta pregunta, pero puede ser útil para aquellos que se quedaron en esta situación y buscando respuestas.
Mi respuesta funcionará si no está estrictamente obligado a usar la etiqueta <jsp: include>
para incluir jsp. En su lugar, puede usar <%@include file="/WEB-INF/views/path-to-jsp.jsp" %>
para importar otro jsp en la página y esta página puede usar su variable de bucle de etiquetas <c:forEach>
.
Por ejemplo.
<c:forEach items="${users}" var="user">
<%@include file="/WEB-INF/views/path-to-jsp.jsp" %> <!-- here ${user} can be use in importing jsp file. -->
</c:forEach>
Se está trabajando porque <%@include file="" %>
etiqueta inyectará el contenido del archivo con el nombre en el JSP que contienen la etiqueta, como si hubiera sido copiado y pegado. Esto se hace antes de analizar el contenido del archivo incluido, en lugar de analizarlo mientras se analiza el JSP que lo contiene. Esto es más parecido a una directiva C#include, donde durante el preprocesamiento, el archivo incluido se "pega" en su lugar antes de compilar el archivo. Después de que se incluye el contenido, se evalúa, todo en el mismo contexto y, por lo tanto, con los mismos accesos y restricciones que tendría el código incluido si los contenidos se escribieran simplemente en su lugar.
Considerando que, <jsp:include page=""/>
etiqueta se comporta de manera diferente en que el resultado de la prestación de la página especificada se inyecta en el JSP que contiene en el punto de la etiqueta. Esto se hace básicamente enviando la página solicitada al mismo contenedor, como una solicitud de representación por separado, y tomando los resultados, no el contenido del archivo. Esta solicitud se realiza en su propio contexto, lo que significa que no utiliza la misma información de página que la página que contiene la etiqueta. Esto puede ser útil, especialmente si el contenido incluido puede tener variables conflictivas, por ejemplo.
Estaba buscando una manera más elegante, pero terminé haciendo esto. Por cierto, no es necesario cambiar el nombre de la variable: ' ' funciona bien y es probable que sea menos confuso . –
Dmitri