gpt4 book ai didi

jsf - 从 java.util.Map 创建动态表

转载 作者:行者123 更新时间:2023-12-04 06:10:34 24 4
gpt4 key购买 nike

我正在 JSF 2.0 中开发一个 Web 应用程序。在我的应用程序中,我需要一个表格来查看状态。

我有一个 Map<Date, List<Presence>>在我的“PresenceService”bean 中。

Presence 对象有一个 Person 对象(带有名字和姓氏)和一个 bool 值存在/不存在。

我想创建一个如下所示的表:

                 monday     tuesday        wednesday    ...
Name Person 1 present not present present ...
Name Person 2 present present present ...
... ... ... ... ...

我可以使用哪些 JSF 组件来创建这样的表?或者我不应该为此使用 map ?我尝试用 <ui:repeat> 自己创建一个表的,但没有这样做。
由于用户可以选择时间段和人员范围,因此列和行可以是动态的。

编辑:解决方案(见答案 Balus C)

这就像一个魅力:
        <table>
<tr>
<th>Name</th>
<ui:repeat value="#{aanwezigheidController.siAanwezigheidService.datums}" var="datumHeader">
<th>
<h:outputText value="#{datumHeader}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</th>
</ui:repeat>
</tr>
<ui:repeat value="#{aanwezigheidController.siAanwezigheidService.aanwezigheidSiRijen}" var="aanwRij">
<tr>
<td>#{aanwRij.persoon.naam} #{aanwRij.persoon.voornaam}</td>

<ui:repeat value="#{aanwezigheidController.siAanwezigheidService.datums}" var="datumCell">
<td>
<h:outputText value="aanwezig" rendered="#{aanwRij.aanwezighedenMap[datumCell].aanwezig}" />
<h:outputText value="afwezig" rendered="#{!aanwRij.aanwezighedenMap[datumCell].aanwezig}" />
</td>
</ui:repeat>

</tr>
</ui:repeat>
</table>

最佳答案

双嵌套 <ui:repeat>应该没事。标准 JSF 实现不提供类似 <h:columns> 的内容。表示动态列,但组件库 RichFacesPrimeFaces分别有 <rich:columns> <p:columns> 正是为了这个目的。你可能想看看它。

独自一人Map<Date, List<Presence>> ,不可能选择一个特定的人来呈现所有列的行数据。你基本上需要一个 Map<Date, Map<Person, List<Presence>> ,或单独的 List<Date>代表动态列和单独的 List<Presence>哪里Presence依次有PersonMap<Date, Boolean>属性,以便可以为列选择特定日期。

关于jsf - 从 java.util.Map 创建动态表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com