jsf-2 - dataTable 内 JSF 复合组件的唯一 ID

标签 jsf-2 primefaces

我在 glassfish 3.1.2 中使用 PrimeFaces 3.2 和 JSF 2。

我有一个 <p:dataTable>,它显示包含不同问题信息的搜索结果(问题已分配给用户)。 如果有人单击指定用户的图标,则会弹出 <p:dialog>。 用户图标和相应的对话框是使用组合来实现的。 在复合 Material 中,我使用了一些 jQuery 函数,这些函数需要为每个对话框组件提供唯一的 ID - 我无法找到解决此问题的方法。

到目前为止我的调查:

我需要设置 widgetVar 属性,只要列表中只有一个用户,该属性就可以正常工作,但似乎在 dataTable 内,widgetVar 对于许多复合 Material 来说并不是唯一的。 由于用户可以在搜索结果中多次显示,因此我无法像这样设置 widgetVar:

<ui:param name="myWidgetVar" value="widget_#{user.id}" />

并以这种方式使用它

<p:dialog widgetVar="#{myWidgetVar}">

同样使用 #{cc.id} 并不能解决问题,因为它只返回小部件的 id,而没有始终相同的命名容器部分。

我需要 html 中显示的完整 ID(例如:form:jdt123:dialog:456) - 我怎样才能得到这个?

有人知道该怎么做吗?

谢谢皮特

最佳答案

我的解决方案是使用我还不知道的#{cc.clientId}
这给了我完整的 html 元素 id,由与 UINamingContainer#getSeparatorChar 粘合的一系列标识符组成(例如:form:jdt123:dialog:jdt456)

关于jsf-2 - dataTable 内 JSF 复合组件的唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076071/

相关文章:

java - Primefaces DataTable 内联编辑 - 不重新加载页面就无法更新模型

jsf - primefaces-3.3.1 生日日历

javascript - 打开 Primefaces 错误对话框

java - 注销后的 JSF 生命周期

jsf-2 - PrimeFaces selectCheckboxMenu : Old values in toggleSelect actionListener

jsf-2 - P :contextMenu is not rendering inside P:layout component

jsf-2 - 如何隐藏 <p :messages> after it displayed the messages?

redirect - 重定向和导航/转发之间的区别是什么?何时使用?

移动和 Web 客户端之间的 Java 聊天

javascript - Primefaces javascript 延迟解析