jstl foreach不会迭代一个列表

时间:2014-06-20 04:56:12

标签: jsp java-ee jstl

我想迭代一个列表,该列表通过jsp范围传递给我的request

这是我尝试过的代码:

<c:forEach items="${param.evaluateurs}" var="evaluateur">
     <c:out value="${evaluateur.lastname}"></c:out> <c:out value="${evaluateur.fistname}"</c:out>
</c:forEach>

但是当我运行jsp时,我只看到一个条目,所以我猜它没有迭代列表。

但是当我使用for loop时,它可以工作:

<%
java.util.List<emaeval.statistic.doa.Users> evaluateurs = 
        (java.util.List<emaeval.statistic.doa.Users>) request.getAttribute("evaluateurs");
for(emaeval.statistic.doa.Users evaluateur : evaluateurs) {
 %> 

<%= evaluateur.getFirstname() %> <%= evaluateur.getLastname() %> 

<% } %>

jstl方法有什么问题?

2 个答案:

答案 0 :(得分:0)

jstl param相当于request.getParameter。因为你必须从request访问它,你必须像下面那样迭代

<c:forEach items="${evaluateurs}" var="evaluateur">
     <c:out value="${evaluateur.lastname}"></c:out> <c:out value="${evaluateur.fistname}"</c:out>
</c:forEach>

答案 1 :(得分:0)

您的问题是 evaluateurs 不是作为请求参数发送的,而是请求属性到JSP。因此,您必须从正确的位置(参数地图)获取它。

而不是使用"${param.evaluateurs}"而只使用"${evaluateurs}"