基于共性JSF组合两个dataTable

时间:2015-02-02 00:08:58

标签: jsf primefaces

我有以下数据库结构:一个项目,它有多个子项目和多个用户已在特定子项目上预订了一些时间。我需要为每个项目显示子项目列表,以及为每个子项目显示工作的用户和预订的总时间。 像这样:

Project1
   Subproject1       User1   TimeBooked
                     User2   TimeBooked 

   Subproject2       User3   TimeBooked 
                     User2   TimeBooked

这是我到目前为止所做的:

<p:dataTable var="subproj"
             value="#{project_stats_user_chart.selectedProject.subprojects}"
             id="projectSubprojects">

    <p:column>
        <h:outputText value="#{subproj.type}" style="font-size: 1em;"></h:outputText>
    </p:column>

    <p:column>
        <p:dataTable var="user"
                     value="#{project_stats_user_chart.users}" 
                     id="SubprojectsUsers">

            <p:column>
                <h:outputText value="#{user.firstName}"
                              style="font-size: 1em;"></h:outputText>
                <h:outputText value="#{user.lastName}" style="font-size: 1em;">
                </h:outputText>
            </p:column>
        </p:dataTable>
    </p:column>
</p:dataTable>

我现在的问题是根据需要显示预订时间。 我有一个查询计算每个用户的每个子项目的总和,但我需要以某种方式根据它们的共性迭代这两个表或合并这两个表,以便我可以得到我想要的组合。我是PrimeFaces的新手,所以也许有人可以帮我这个

1 个答案:

答案 0 :(得分:2)

在Java(模型)方面,而不是在XHTML(视图)方面。您应该在Java端准备好视图所期望的模型。视图应尽可能保持愚蠢,并且只呈现给出的模型。