Я использую JSF2 и простые лица. У меня есть этот кусок кода
<c:forEach begin="1" end="5" var="i">
<h:outputLabel value="#{i} #{msg.set}:"/>
</c:forEach>
Можно ли заменить на ui:repeat без создания элементов списка в диапазоне от 1 до 5?
Я использую JSF2 и простые лица. У меня есть этот кусок кода
<c:forEach begin="1" end="5" var="i">
<h:outputLabel value="#{i} #{msg.set}:"/>
</c:forEach>
Можно ли заменить на ui:repeat без создания элементов списка в диапазоне от 1 до 5?
Возможно, вам удастся избежать создания встроенного списка с помощью spel
http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/expressions.html
<ui:repeat var="i" value="#{1,2,3,4,5}">
<h:outputLabel value="#{i} #{msg.set}:"/>
</ui:repeat>
Но может быть громоздким, если вам нужны сотни.
Я думаю, вам придется создать какой-то поддерживающий компонент, чтобы быть более гибким.
Это может быть сделано как отдельный служебный компонент, у которого есть метод, который возвращает список целых чисел, я думаю, чтобы помочь, чтобы вы могли позвонить
<ui:repeat var="i" value="#{util.generate(1,5)}">
<h:outputLabel value="#{i} #{msg.set}:"/>
</ui:repeat>
Нет. Тег ui:repeat не является общим тегом итерации, он работает только с коллекциями.
Вам придется использовать forEach или проектировать вокруг этого.