在ui:include资源中生成唯一ID标签

问题描述

| 我正在构建一个页面,该页面将具有标签的多个实例,如下所示。
<ui:include id=\"foo\" src=\"images/something.svg\" />
Faces Servlet通过svg文件传递给浏览器,除了找到的EL表达式外,没有任何其他处理,这很好。问题在于包含文件中的id标签是静态的,因此该文件的多个包含将生成非唯一的ID标签。 我想要做的是类似于h:form的操作,其中ui:include标记的ID放在包含文件中元素的ID之前。然后,我可以明确地解决所有问题。 有没有公​​认的“最佳实践”方法? 更新:也许我应该通过跟进来扩大这个问题,首先我需要这样做吗?我的目标是唯一解决svg文档包含的每个副本中的标签,该标签可以有任意数量。我有可用的jQuery,因为它还是被Primefaces引入的。 因此,如果我有这样的JSF文件:
<ui:include id=\"foo\" src=\"images/something.svg\" />
<ui:include id=\"bar\" src=\"images/something.svg\" />
在something.svg文件中,我有一个标签
<rect id=\"blink\" ... />
在页面上的javascript中,我希望能够获得指向foo:blink或bar:blink的指针。我想我可以使用XPath表达式,但我知道它们有点慢。我无法想象发明ui:include标签的家伙还没有考虑如何处理这个问题,所以我假设我错过了一些显而易见的事情。     

解决方法

<ui:param>
的价格通过。
<ui:include src=\"images/something.svg\">
    <ui:param name=\"id\" value=\"foo\" />
</ui:include>
<ui:include src=\"images/something.svg\">
    <ui:param name=\"id\" value=\"bar\" />
</ui:include>
您可以通过包含文件的EL中的参数名称“ 5”来引用它。例如。
<rect id=\"#{id}_blink\" ... />
    ,您可以使用:
<f:subview id=\"uniqueXXX\">
另请参见以下示例:     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...