У меня есть простая таблица данных, которая содержит динамические текстовые поля формы. Каждое поле имеет идентификатор, определенный в компоненте поддержки, поэтому я хотел использовать этот идентификатор для идентификации каждого из полей h: inputText.
<h:dataTable id="fieldTable" value="#{bean.indexFields}" var="item">
<h:column id="column">
<h:inputText id="#{item.id}" value="#{bean.values[item.id]}" />
</h:column>
</h:dataTable>
Когда я пытаюсь просмотреть страницу, JSF выдает ошибку: The id attribute may not be empty
.
Если я добавлю константу к атрибуту идентификатора ввода, она будет работать, но, глядя на сгенерированный идентификатор, идентификатор элемента не будет включен:
<h:inputText id="#{item.id}abc" value="#{bean.values[item.id]}" />
Создает следующий вывод:
<table id="form:fieldTable">
<tbody>
<tr>
<td><input id="form:fieldTable:0:abc" type="text" name="form:fieldTable:0:abc" title="" /></td>
</tr>
<tr>
<td><input id="form:fieldTable:1:abc" type="text" name="form:fieldTable:1:abc" title="" /></td>
</tr>
<tr>
<td><input id="form:fieldTable:2:abc" type="text" name="form:fieldTable:2:abc" title="" /></td>
</tr>
</tbody>
</table>
Есть ли способ включить идентификатор из повторяющегося элемента в атрибут входного идентификатора? Почему идентификатор опущен?