我有每个客户的计费服务列表,我正在尝试构建一个表格,用户可以在其中选择哪些服务应该实际计费:
<p:dataList value="#{billController.billings}" var="billings">
<p:dataTable value='#{billings.billablesDataModel}' var='item' selection="#{billings.toBill}">
<f:facet name="header">
<h:outputText value="#{billings.client.id}" />
</f:facet>
[...]
</p:dataTable>
</p:dataList>
问题是,所有数据表都使用j_idt9:j_idt13:0:j_idt14
由 JSF 自动分配的相同 ID 属性 () 呈现。我怀疑这导致选择不起作用。(支持 beanbillings.toBill
未更新/保持为空。)
我试图dataTable
像这样手动设置 ID 属性:
<p:dataTable id="#{billings.client.id}" ...>
但是,我收到以下错误:
java.lang.IllegalArgumentException: Empty id attribute is not allowed
(#{billings.client.id}
绝对设置为唯一客户端的 ID,因为我从一个h:outputText
用于调试的目的获得了正确的输出。)
你能帮我解决这个问题吗?
我在 Tomcat 6 上使用 JSF Mojarra 2.1.1 和 PrimeFaces 3.2。