我创建了一个custom Facelet tag。我希望ID可以回退到默认的j_idtXxx
,就像在XHTML中没有设置时遗漏整个ID属性一样。
所以,我希望<my:tag id="fiets"/>
呈现为<span id="fiets"/>
。
但是,<my:tag/>
应该呈现为<span id="j_idtXxx"/>
。
如果我在我的标记文件中使用<h:anyTag id="#{id}"/>
,它就会在空ID属性上失败。有没有办法将其呈现为默认生成的ID?我想创建类似的东西:
<c:set var="id" value="#{empty id ? USE_DEFAULT : id}" />
但我不知道在USE_DEFAULT
使用什么。
答案 0 :(得分:2)
该功能由UIViewRoot#createUniqueId()
提供。 EL中的当前UIViewRoot
实例可用作隐式对象#{view}
。
所以,这应该做:
<c:set var="id" value="#{empty id ? view.createUniqueId() : id}" />