我知道这并不难,但是我没有任何运气。
我想fooList从JSP中可用的Servlet中获取。所以在Servlet中,我有:
fooList
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。
SOME_EL_HERE
request
有什么想法吗?我的首选是不要通过添加框架使简单的任务复杂化,但是我愿意接受战略上的变化。
这只是您在此处设置的属性 名称 :
request.setAttribute("list", fooList);
因此"list":
"list"
${list}
session.setAttribute("name", value)和和的工作方式相同application.setAttribute("name", value)。该值在EL中仅可用${name}。
session.setAttribute("name", value)
application.setAttribute("name", value)
${name}
更多详细信息:EL默认情况下使用,PageContext#findAttribute()它随后在页面,请求,会话和应用程序范围内扫描与给定属性名称匹配的firstnext非null属性值。
PageContext#findAttribute()
如果您想明确指定范围,为您所用的不同范围的多个同名的属性的话,那么正常的方法是使用${pageScope},${requestScope},${sessionScope}或${applicationScope}。例如
${pageScope}
${requestScope}
${sessionScope}
${applicationScope}
${requestScope.list}