В проекте с JSF 1.1 с Apache Trinidad мне нужно создать несколько динамических h:commandLink, и к ним нужно получить доступ с помощью JS, чтобы их можно было щелкнуть при загрузке.
У меня есть это для js:
var cardsSize = window.document.getElementById("miForm:cardsSize").value;
for(var i = 0; i <= cardsSize; i++){
setTimeout(function(){
var buttonCard = window.document.getElementById("miForm:buttonCard_"+i);
buttonCard.click();
}, 1000);
}
И что у меня есть в .jsp:
<c:forEach var = "i" begin="0" varStatus="index" end="#{pageFlowScope.cardsSize}">
<h:commandLink id="buttonCard_#{index.index}"
style="display:none"
action="#{confirmBacking.generateDocument}"
onclick="document.forms['miForm'].target='_blank';">
<f:setPropertyActionListener target="#{confirmBacking.indexCard}" value="#{index}" />
</h:commandLink>
</c:forEach>
Проблема в том, что когда я создаю commandLink с помощью c:forEach, используя динамический идентификатор, оканчивающийся на Согласно директиве TLD или атрибута в файле тега, атрибут «[id]» не принимает никаких выражений
Другие решения для c:forEach или ui:repeat для создания нескольких commandLink с разными параметрами подразумевают отсутствие и идентификатор, но мне нужны идентификаторы, поскольку, насколько мне известно, у JS нет другого способа доступа к этим объектам.