java – 如何在JSP中使用EL获取request/session/servletcontext属性?

我知道这不难,但我没有运气。

我想使一个Servlet中的fooList在JSP中可用。所以在Servlet中我有:

request.setAttribute("list", fooList);
RequestDispatcher dispatcher = 
  getServletContext().getRequestDispatcher("/myJsp.jsp");
dispatcher.forward(request, response);

然后在JSP中,我想:

<c:forEach var="post" items="${SOME_EL_HERE}">
    <!-- stuff -->
</c:forEach>

其中SOME_EL_HERE是一个表达式,用于检索我在请求中设置的属性。

有什么想法吗?我的偏好是通过添加一个框架不复杂一个简单的任务,但我愿意改变战略。

最佳答案
它只是你在这里设置的属性名称:

request.setAttribute("list", fooList);

因此它是“列表”:

<c:forEach var="post" items="${list}">

更多细节:EL默认使用PageContext#findAttribute(),其随后扫描与给定属性名称匹配的firstnext非空属性值的页面,请求,会话和应用程序作用域。

如果你想显式地指定范围,在不同范围内有多个具有相同名称的属性,那么正常的方法是使用$ {pageScope},$ {requestScope},$ {sessionScope}或$ { applicationScope}。例如。

<c:forEach var="post" items="${requestScope.list}">

也可以看看:

> Unified expression language in Java EE 5 tutorial

转载注明原文:java – 如何在JSP中使用EL获取request/session/servletcontext属性? - 代码日志