我在下面有这段代码:
<h:panelGrid id="formDatatable">
<p:dataTable var="Resource" value="#{resource.listResourceForDataTable}">
<p:subTable var="access" value="#{resource.listResourceForSubTable}">
<f:facet name="header">
#{Resource.firstname} #{Resource.lastName}
</f:facet>
<p:column>
#{access.skillLevel}
</p:column>
<p:column>
#{access.skillName}
</p:column>
</p:subTable>
</p:dataTable>
</h:panelGrid>
DataTable 的值:资源列表(带有字符串和映射的复杂对象)
在子表的值中:只有 2 个字段的资源列表:---> SkillLevel(字符串)和 SkillName(字符串)。
结果是(技能等级/技能名称):
如您所见,它用我的子表列表中的所有元素填充“标题”。这不是我想要的,因为“albert first”(资源)已经学习了 java(技能)并且在 levelOfSkill 中有 2 个。他没有其他技能。
我想在我的桌子上有:
阿尔伯特第一:2 - java
迈克尔杰克逊:2-jee;3 - php
汤姆霍克斯:2-php;4 - 爪哇
但是我每次在每个标题中都拥有所有技能。我怎样才能“分离”数据?我认为 DataTable 和 SubTable 可以完成这项工作。