我有一个要求,我需要在表单上显示将从数据库中检索的组件。我可以在datatable和ui repeat的帮助下显示组件。我还需要为这些组件包含toolTip功能,每个组件都需要一个ID。有没有什么办法可以动态地向组件添加id。
<p:dataTable styleClass="borderless" id="rdResultTable" var="result"
value="#{RequestBean.radioList}" rendered="#{not empty RequestBean.radioList}">
<p:column style="width:150px;">
<f:facet name="header">
<h:outputText value=" " />
</f:facet>
<h:outputText value="#{msg[result.field_label]}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="" />
</f:facet>
<ui:repeat value="#{RequestBean.radioList}" var="itm">
<p:inputText value="#{itm.indFieldValue}"
rendered="#{result.level_id==itm.level_id and result.field_type=='textbox'}">
</p:inputText>
</ui:repeat>
</p:column>
</p:dataTable>
任何帮助都将不胜感激。
答案 0 :(得分:8)
你不需要。 JSF将自动担心在同一循环中设置<p:tooltip>
与目标组件之间的正确关系。
<ui:repeat ...>
<p:inputText id="foo" ... />
<p:tooltip for="foo" ... />
</ui:repeat>
在Web浏览器中拉出JSF页面,右键单击并执行查看源。您会注意到<ui:repeat>
已经使用迭代索引自动为ID foo
添加前缀。
答案 1 :(得分:-1)
据我所知,JSF不允许你设置动态id,而primefaces是基于JSF的。
也许这个问题的答案可以帮到你:Refer to JSF dynamically generated ids based on iteration index