jsf-2 - 在 ui :include resource 中生成唯一的 ID 标签

标签 jsf-2

我正在构建一个页面,该页面将包含多个标签实例,如下所示。

<ui:include id="foo" src="images/something.svg" />

Faces Servlet 将 svg 文件传递​​给浏览器,除了它找到的 EL 表达式之外没有任何处理,这很好。问题是包含文件中的 id 标签是静态的,因此该文件的多个包含将生成非唯一的 ID 标签。

我想做的是什么 h:表格确实如此,其中 的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 栏:闪烁 .我想我可以使用 XPath 表达式,但我知道它们有点慢。我无法想象发明 的人用户界面:包括 标签还没有考虑过如何处理这个问题,所以我假设我错过了一些明显的东西。

最佳答案

将其传递为 <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>

您可以通过参数名称 #{id} 来引用它在包含文件的 EL 中。例如。
<rect id="#{id}_blink" ... />

关于jsf-2 - 在 ui :include resource 中生成唯一的 ID 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142328/

相关文章:

jsf - 通过 request.login() 的编程登录在失败的情况下不会重定向到 <form-error-page>

css - PrimeFaces 对话框标题大小不正确

jsf - “omnifaces.SelectItemsConverter”转换器 ID 未注册

jsf-2 - 自定义 PhaseListener 在 jsf 2 中调用了两次

java - 奇怪的错误 : inputTextarea only hook its value to the last row in dataTable

validation - 绕过 UIInput 组件的 JSF 验证

java - JSF 2.h :selectBooleanCheckbox. 意外行为

java - DecimalFormat 被服务器设置覆盖

java - Could not find Factory : javax. faces.context.FacesContextFactory问题

java - JSF 数据表对齐