I know this isn't hard, but I'm not having any luck.
I want to make fooList
from a Servlet available in a JSP. So in the Servlet I have:
request.setAttribute("list", fooList);
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/myJsp.jsp");
dispatcher.forward(request, response);
Then in the JSP, I want:
<c:forEach var="post" items="${SOME_EL_HERE}">
<!-- stuff -->
</c:forEach>
Where SOME_EL_HERE
is an expression that retrieves the attribute that I have set on the request
.
Any thoughts? My preference is to not complicate a simple task by adding a framework, but I'm open to changes in strategy.
It's just the attribute name as you've set yourself here:
request.setAttribute("list", fooList);
It's thus "list"
:
${list}
This works the same way for session.setAttribute("name", value)
and application.setAttribute("name", value)
. The value is in EL available by just ${name}
.
More detail: EL uses by default PageContext#findAttribute()
which scans in subsequently the page, request, session and application scopes for the firstnext non-null attribute value matching the given attribute name.
If you'd like to explicitly specify the scope for the case that you've multiple attributes with the same name in different scopes, then normal approach is to use ${pageScope}
, ${requestScope}
, ${sessionScope}
or ${applicationScope}
. E.g.
${requestScope.list}