У меня есть следующий фрагмент кода:
<ui:repeat var = "ctr" value = "#{bean.counterList}">
<h:outputLabel for = "message#{ctr}" value = "#{appMessage['No #{ctr} :" />
<h:inputText id="message#{ctr}" value="#{bean.messageList}" />
</ui:repeat>
counterList
- это List<String>
. Если в списке содержится 1, 2, 3
, то у вас должно быть 3 поля ввода с идентификаторами: message1, message2, message3
.
EL не влияет на атрибут id , и все компоненты получают только сообщение в качестве идентификатора. С другой стороны, в значении лейбла EL отлично работает.
Я могу представить, что это может быть желаемое поведение, но есть ли обходной путь?
UPDATE:
Я удалил атрибут id
, а ui:repeat
теперь отвечает за присвоение идентификаторов. Из исходного кода я вижу, что сгенерированные идентификаторы уникальны, но теперь выдается это предупреждение:
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=fm-story:j_idt103:0:j_idt54[severity=(ERROR 2), summary=(Conversion Error setting value '' for 'null Converter'.), detail=(Conversion Error setting value '' for 'null Converter'.)]
sourceId=fm-story:j_idt103:1:j_idt54[severity=(ERROR 2), summary=(Conversion Error setting value '' for 'null Converter'.), detail=(Conversion Error setting value '' for 'null Converter'.)]