如何在Primefaces数据表中表示嵌套数据?

这是我的模型:

User.java

public class User { //... public List getFriends() { // ... } } 

我想构建一个用户朋友的表格,如下所示:

users.jsf

 + ---------- + ------------ +
 | 用户| 朋友们|
 + ---------- + ------------ +
 |  | 爱丽丝|
 |  + ------------ +        
 |  ADAM |  BOB |
 |  + ------------ +
 |  |  PITT |
 + ---------- + ------------ +
 |  |  |
 ....

由于有许多用户,因此无法一次性转储用户表。

在这种情况下,数据表组件是理想的,因为它具有内置的分页支持。 它也是理想的,因为它可以对列进行排序……

不幸的是,我无法通过Primefaces示例找到更改用户列中的rowspan的方法。

我该如何构建这个数据表?

其他一些OP有类似的问题:

  • Primefaces / JSF嵌套数据表
  • 如何在同一行中包含一个包含Primefaces的子表的dataTable? 我在做什么?
  • 使用rowspan来表示dataTable
  • …加你的?

编辑
这是我提出的最终解决方案 。

只需在列中使用另一个数据表:)

        

这是它在我的localhost上的样子

在此处输入图像描述

另一种选择是在列中使用ui:repeat来获取集合的所有值。

例:

       
...

Primefaces 可扩展行应该满足您的需求,只有您需要使用子行组件获得创意。 您可以使用主要面数据列表组件作为子行组件。 它看起来像:

    #{friend.firstName}   

对我来说有两种解决方案:

1-如果我想按用户浏览用户并检索朋友列表,在这种情况下我更喜欢dataList

  #{u.name}   #{f.name}    

2-在我可以直接处理朋友列表 (listFreinds [userName,friend])或我正在使用JPQL查询的情况下

  #{u.userName} #{u.friend}  

第二种情况是自v6.0.11起使用Primefaces Row Grouping的新本机解决方案

https://www.primefaces.org/showcase/ui/data/datatable/rowGroup.xhtml

根据@Kerem的回答,这是我提出的解决方案:

为了使嵌套的数据像自己的主数据表行,我已经覆盖了CSS类.ui-dt-c 。 签入h:head查看style标记以获取详细信息。

    USERS and their friends            #{u.name}   #{f.name}