Теги JSTL и компоненты JSF не работают синхронно, как вы ожидаете от кодирования. Теги JSTL выполняются во время построения представления JSF, в то время как компоненты JSF запускаются во время визуализации представления JSF. См. Также подробное объяснение JSTL в JSF2 Facelets ... имеет смысл?
То, чего вы хотите достичь, к сожалению, невозможно с компонентами JSF. <ui:param>
подходит близко, но он функционирует просто как псевдоним для более сложного выражения EL, в то время как <c:set>
фактически устанавливает что-то в желаемой области (область действия view
, которая у вас там, кстати, неверна) ,
Лучше всего поменять модель или обернуть модель в другую модель, чтобы в итоге вы получили
<ui:repeat value="${items}" var="item" varStatus="itemIndex">
<h:outputText value="#{item.name}" />: <h:outputText value="#{item.number}" />
</ui:repeat>