ui: повторяющийся атрибут var не работает должным образом - PullRequest
1 голос
/ 18 мая 2011

Из-за проблемы с @ ViewScoped я должен использовать ui: repeat вместо c: foreach в моем фейслете.Однако я сталкиваюсь с этой проблемой, и мне интересно, может ли кто-нибудь предложить обходной путь.

<ui:repeat value="#{someBean.idCodes}"
           var="led">
           <h:outputText id="mailbox-#{led}" 
               value="#{someBean.getSomeValue(led)}" />
</ui:repeat>

Первая проблема заключается в том, что ссылка {{led} является атрибутом id, НЕ оценивается.Все сгенерированные атрибуты id являются просто значением «mailbox-».Мне нужно найти конкретные экземпляры элементов с помощью document.getElementById (), поэтому мне нужны сгенерированные атрибуты id.

Другая проблема, для которой я не вижу обходного пути, заключается в том, что если я оберну элемент ui: repeat внутриЭлемент h: panelGrid, в результате я получаю таблицу с одной ячейкой, а не одну ячейку для каждого члена коллекции idCodes.

При использовании c: foreach ни одна из этих проблем не существует, но использование этого тега вызывает другие проблемы.Есть предложения?

1 Ответ

1 голос
/ 18 мая 2011

В javadocs обратите внимание, что тип атрибута id - String, а не ValueExpression. Вот почему ваш $ {led} не оценивается. Вы можете попробовать обернуть каждый из них в div или span и установить идентификатор этого элемента в выражении на основе $ {led}.

...