Я не совсем понимаю ваше описание того, что происходит.Но если в вашем внутреннем цикле несколько итераций, вы генерируете повторяющиеся атрибуты id
в двух случаях: во внешнем цикле для aui:input
, во внутреннем цикле для aui:button
.Согласно правилам HTML, идентификатор должен быть уникальным, иначе вы получите неопределенное поведение (или каждый элемент, кроме первого, игнорируемого)
Редактировать:
В своем коде вы используетеrenderRequest.setAttribute("previewUrl", previewURL);
, например, вы установили ровно один previewURL.Позже вы изменяете этот атрибут на список с помощью renderRequest.setAttribute("previewUrl", s1);
- не делайте этого: это делает ваш код неуправляемым и заставляет читателей (таких как я или другие здесь) думать, что previewURL - это единственное значение, когда это действительно список.
При этом: кажется, что у вас есть два списка с одинаковым количеством записей, и каждый элемент в одном списке ссылается на элемент с таким же индексом в другом списке.И если вы вложите эти списки, вы естественным образом отобразите все элементы списка 2 для каждого элемента списка 1. Таким образом: не вкладывайте циклы.Вам понадобится только один цикл, и вы получите доступ к соответствующему элементу из другого цикла напрямую по индексу.
У меня нет JSTL в моей мышечной памяти: в оставшемся (внешнем) forEach следите заindex (через varStatus, см. этот вопрос о том, как это сделать ) и используйте этот индекс для доступа к соответствующему элементу во втором списке.