Ответ 1
Конкретная проблема возникает из-за того, что вы смешиваете обескураженную и старую школу сценарии <% %>
со своим преемником EL ${}
. Они не разделяют одну и ту же переменную область. allFestivals
недоступен в области сценария, а i
недоступен в области EL.
Вы должны установить JSTL (< - щелкнуть ссылку для инструкций) и объявить его в верхней части JSP следующим образом:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
а затем перебираем список следующим образом:
<c:forEach items="${allFestivals}" var="festival">
<tr>
<td>${festival.festivalName}</td>
<td>${festival.location}</td>
<td>${festival.startDate}</td>
<td>${festival.endDate}</td>
<td>${festival.URL}</td>
</tr>
</c:forEach>
(остерегайтесь возможных дыр XSS-атак, используйте <c:out>
соответственно)
Не забудьте удалить <jsp:useBean>
, поскольку он не имеет никакого значения здесь, когда вы используете сервлет как контроллер модели и представления. Это приведет лишь к путанице. См. Также нашу страницу wiki сервлетов. Далее вы сделаете одолжение, чтобы отключить скрипты из следующей записи в web.xml
, чтобы вы случайно не использовали их:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config>