#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}"
.