jstl foreach не будет повторять список

#jsp #jakarta-ee #jstl

#jsp #джакарта-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>
 

но когда я запускаю my 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?

Комментарии:

1. Вы что-то упускаете > <c:out value="${evaluateur.fistname}" или это просто ошибка копирования-вставки?

2. да, это просто ошибка копирования в прошлом

Ответ №1:

In 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>
 

Ответ №2:

Ваша проблема в том, что evaluateurs отправляется не как параметр запроса, а как атрибут запроса к JSP. Поэтому вы должны взять его из нужного места (а не из карты параметров).

Вместо использования "${param.evaluateurs}" use simply "${evaluateurs}" .