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

时间:2010-08-26 20:21:51

标签: java jsp servlets jstl el

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

我想从JSP中可用的Servlet中创建fooList。所以在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上设置的属性。

有什么想法?我的偏好是不通过添加框架使一个简单的任务复杂化,但我对战略的变化持开放态度。

1 个答案:

答案 0 :(得分:46)

这就是您在此处设置的名称属性:

request.setAttribute("list", fooList);

因此"list"

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

更多详细信息:EL默认使用PageContext#findAttribute(),它随后扫描与给定属性名称匹配的第一个非空属性值的页面,请求,会话和应用程序范围。

如果您想明确指定在不同范围内具有相同名称的多个属性的案例的范围,那么通常的方法是使用${pageScope}${requestScope},{{ 1}}或${sessionScope}。 E.g。

${applicationScope}

另见: