Как использовать сгенерированный по умолчанию идентификатор в теге Facelet

Я создал собственный тег Facelet. Я хотел бы, чтобы идентификатор вернулся к значению по умолчанию j_idtXxx точно так же, как если бы вы пропустили весь атрибут ID, если он не установлен в XHTML.

Итак, я хотел бы <my:tag id="fiets"/> быть представленным как <span id="fiets"/>,

Но, <my:tag/> должен быть представлен как <span id="j_idtXxx"/>,

Если бы я использовал <h:anyTag id="#{id}"/> в моем файле тегов он просто не работает с пустым атрибутом ID. Есть ли способ визуализации в качестве сгенерированного идентификатора по умолчанию? Я хотел бы создать что-то вроде:

<c:set var="id" value="#{empty id ? USE_DEFAULT : id}" />

Но я не знаю, что использовать в USE_DEFAULT,

1 ответ

Решение

Функциональность доступна UIViewRoot#createUniqueId(), Электрический ток UIViewRoot экземпляр в EL доступен как неявный объект #{view},

Итак, это должно сделать:

<c:set var="id" value="#{empty id ? view.createUniqueId() : id}" />
Другие вопросы по тегам