Как использовать сгенерированный по умолчанию идентификатор в теге 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}" />