Я потратил на эту половину своего дня, и в конце концов, это действительно заставило меня устать и взволноваться, потому что это кажется настолько очевидным и простым кодом - что должно быть не так? Как некоторыеМожет быть, поиск решения такой же проблемы, я думаю, лучше ответить на этот вопрос здесь - в чем проблема.
Важным моментом здесь является имя переменной итерации - идентификатор param
.
В начале [вероятно] всех .jsp файлов у нас есть оператор для импорта тегов core
, и мы присваиваем ему некоторый префикс
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
Причина, по которой
...
<ol>
<c:forEach var="param" items="${params}">
<li>${param}</li>
</c:forEach>
</ol>
...
не работал и показывал
1. {}
2. {}
3. {}
, заключается в том, что param
является ключевым словом, идентифицирующим один из основных теговот jstl/core
.
<c:param>
выбирает / получает массив параметров запроса.
Итак, каждый раз, когда цикл forEach
повторялся, переменная param
назначалась параметру (ам) запроса из строки запроса, а не значению итерации из ${params}
переменной / заполнителя, и, поскольку я ничего не передавал - пустой массив
PS Будьте осторожны, не используйте теги JSTL в качестве переменных / идентификаторов в вашем коде.
Надеемся, что некоторые из вас сочтут эту информацию полезной.