JSF嵌套ui:repeat / DataTable问题

时间:2018-01-05 21:32:01

标签: jsf datatable uirepeat

我试图在我的原始DataTable中嵌套一个ui:repeat或另一个DataTable,这样我就可以显示另一个列表。

所以原始的DataTable使用了一个列表,而嵌套的ui:repeat正在使用另一个列表,但是ui:repeat并不是在迭代它,而是只显示每个DataTable行的整个列表。 / p>

这里是嵌套的ui:重复我目前

<h:column>
    <ui:repeat value="#{readingBean.list}" var="amount">
        #{amount}
    </ui:repeat>
    <f:facet name="header">Amount Used</f:facet>
</h:column>

这是我获取用于填充原始DataTable

的数据的地方
public List<Reading> getReadingData() {
    List<Reading> readingByMeter = (em.createNamedQuery("Reading.findByMeter").setParameter("meter",name)).getResultList();
    return readingByMeter;
}

这是我希望嵌套在

中的第二个列表
public List<Double> getList() {
    List<Reading> readingData = (em.createNamedQuery("Reading.findByMeter").setParameter("meter",name)).getResultList();


    List<Double> list = new ArrayList<Double>();
    for (int i = 1; i < readingData.size(); i++)
    {
        list.add((readingData.get(i).getReading().doubleValue() - readingData.get(i - 1).getReading().doubleValue()) / 50); 
    }

    return list;
}

因此,对于第二个列表,我通过第一个元素减去原始列表中的第二个元素然后除以50来计算一个量。所以它将是(1 - (1 -1))/ 50然后(2 - (2 - 1))/ 50等等。取下一个元素并用前一个元素减去它。

这就是目前在DataTable中使用ui:repeat的样子

DataTable Display Current - 但我希望它被列为

2050 | 43.0
4200 | 38.0

等等

所以我的问题是如何在原始数据表的列中显示我的第二个列表,使其如上所示。我搜索了很多,无法找到任何解决方案,所以任何帮助都表示赞赏。如果您还需要更多信息,请告知我们

0 个答案:

没有答案