Каков наилучший способ создания атрибутов динамического идентификатора для таблиц (в цикле) с использованием <h:dataTable>
?
Мы используем следующее:
- JSF 1.2
- JSP
- Сервер приложений Sun 9.0_01
- JSTL 1.1
У нас есть страница с 8 таблицами.
Каждая таблица ДОЛЖНА иметь уникальный идентификатор.
Таблицы рисуются путем итерации по карте, которая содержит элементы, содержащие табличные данные.
Ключи Карты следует использовать при определении атрибутов ID таблиц.
Пример:
Если моя карта содержит эти ключи: Dog, Cat, Mouse, Bird
В идеале я хочу, чтобы атрибуты ID моих таблиц были: dog-table, cat-table, mouse-table, bird-table
Что-нибудь случайное тоже сработает: t1-table, t2-table, t3-table
Атрибут ID <h:dataTable>
не разрешает выражения EL (поэтому я не могу напрямую обращаться к своим ключам карты).
Как лучше всего создать атрибуты моего идентификатора?
На ум приходят два подхода, но оба они кажутся хакерскими:
использовать скриптлет или выражение значения JSP
используйте jQuery для назначения уникальных идентификаторов каждой таблице (после ее рендеринга и до ее обработки)
Конечная цель — отобразить эти таблицы с помощью jqGrid (поэтому мы все равно используем jQuery).
Любая помощь будет потрясающей...
ПРИМЕЧАНИЕ.
Мы используем вспомогательный класс для симуляции перебора карты (поскольку это невозможно в JSF 1.2).
Вместо фактического повторения карты мы создаем список объектов, у которых есть имя и List<Foo>
.
Имя представляет собой ключ, а список представляет собой строки таблицы (таблиц).
Изменить:
В конце концов мне пришло в голову, что <h:dataTable>
генерирует свои собственные уникальные идентификаторы в этом сценарии.
Сгенерированные имена достаточно хороши, чтобы решить мою проблему...
Несмотря на то, что моя страница работает, мне все еще любопытно, как поступить в этой ситуации в будущем.
<ui:repeat>
вместо<h:dataTable>
? Таким образом, вы можете определить идентификаторы для своих тегов HTML<table>
вручную. - person Uooo   schedule 05.02.2013