Я только что внес ошибку в свой код, потому что, похоже, неправильно понял жизненный цикл тега jsp.
Тег работал так до ошибки: я передаю тегу некоторую коллекцию в качестве атрибута, и он отображает его в виде таблицы. Коллекция была передана в JSP от контроллера.
После ошибки: я удалил атрибут, который устанавливал коллекцию. Вместо этого в теге я проверяю, является ли коллекция нулевой, а затем беру ее по имени из запроса (используя соглашение об именах).
То, чего я не ожидал: после того, как коллекция была изначально установлена в теге, она никогда не станет нулевой при последующих выполнениях! Он все еще был определен как необязательный атрибут в TLD.
Я ожидал, что тег не сохранит предыдущие значения между выполнениями.