Primefaces数据表排序和对齐

Primefaces数据表排序和对齐,primefaces,Primefaces,我想从Arraylist动态构建网站页脚。我使用primefaces作为UI 下面的绿色图像是我想要的使用primefaces的图像,到目前为止,我得到的数据表与下面的蓝色和白色图像类似 这是我正在使用的primefaces代码。有人能告诉我如何使用primefaces数据表或数据列表来构建下面类似页脚的绿色图像吗。 在Footer2列表中,我将类别作为标题,如社交媒体、社区和描述作为子数据 提前谢谢 <p:dataTable var="fot" value="#{footer2MB.f

我想从Arraylist动态构建网站页脚。我使用primefaces作为UI

下面的绿色图像是我想要的使用primefaces的图像,到目前为止,我得到的数据表与下面的蓝色和白色图像类似

这是我正在使用的primefaces代码。有人能告诉我如何使用primefaces数据表或数据列表来构建下面类似页脚的绿色图像吗。 在Footer2列表中,我将类别作为标题,如社交媒体、社区和描述作为子数据

提前谢谢

 <p:dataTable var="fot" value="#{footer2MB.footer2List}" sortBy="#{fot.category}">
    <p:columnGroup type="header">
        <p:row>
            <p:column colspan="2">
                <b><h:outputText value="#{fot.category}"/></b>
            </p:column>
        </p:row>                
    </p:columnGroup>

    <p:column headerText="fotId" colspan="7">
        <h:outputLink  target="_new#{fot.url}" value="#{request.contextPath}#{fot.url}">
        <h:outputText value = "#{fot.description}" />
         </h:outputLink>
    </p:column>
</p:dataTable>

当您试图滥用数据表进行此操作时,您真的感觉就像是在方孔中插入了一个圆钉。与使用两个嵌套的ui:repeats相比,您需要按照所示的方式对其进行格式化的css数量要多得多

您似乎将父子关系放在一个表中。因此,如果您还没有这样做,那么就从建模您自己的JPA实体开始,就像在中所做的那样。如果您没有使用JPA,您需要编写一些代码,但这也是非常简单和直接的

编写检索顶级记录的JQL:从MyRecord r中选择r,其中父项id为null

然后在伪代码中执行以下操作:

<ui:repeat value="#{myBean.rootRecords}" var="rootRecord">
    <h3>#{rootRecord.title}</h3>
    <ul>
    <ui:repeat value="#{rootRecord.children}" var="child">
        <li>#{child.title}</li>
    </ui:repeat>
    </ul>
</ui:repeat>
这就是我们在这里所做的:

您可以看到的一个优化是在JPA中延迟或急切地加载子对象。另一个是使用p:cache

所有这些都简单明了,没有数据表的麻烦


离题:我几乎100%确信,你已经花了更多的时间试图滥用数据表、创建问题并与我讨论,而不是直接按照本答案中描述的方式进行-

为什么要为该零件使用数据表?与第一个图像的关系是什么?在开始使用自定义代码之前,只需使用两个嵌套的ui:repeats和一些CSSI使用数据表,看看是否可以像绿色图像一样使用简单的排序和columnGroup构建它。关系是表是三列类别将有标题,描述将有子数据,甚至有列父Id,其中子数据将有标题Id。想法是保留在一个表中而不是两个表中。没有人提到两个表我使用的是一个表,而不是两个表。PrimFacesUI数据表从托管bean获取列表。所有数据都在一个列表中。感谢您的快速回复。。。我正在使用JPA,我已经尝试过这种方法,但我得到了一个错误:类“java.lang.String”没有属性“title”,即使它存在于child中。谢谢你的非常详细的回答,我将开始从JPA看,看看我是否有正确的答案。。。特别是单表父子关系。我会让你知道的。@skrk:那么tpu做的第一件事就是像在searchengine中一样发布错误,并得到一个建议切换到使用datatable的点击?我得到了不同的结果这就像一个魅力节省了很多时间非常感谢。