【发布时间】:2011-10-20 10:38:01
【问题描述】:
我正在用 JSF 2.0 开发一个 Web 应用程序。在我的应用程序中,我需要一个表格来查看状态。
我的“PresenceService”bean 中有一个Map<Date, List<Presence>>。
Presence 对象有一个 Person 对象(带有姓名和姓氏)和一个布尔值存在/不存在。
我想创建一个如下所示的表:
monday tuesday wednesday ...
Name Person 1 present not present present ...
Name Person 2 present present present ...
... ... ... ... ...
我可以使用哪些 JSF 组件来创建这样的表?还是我不应该为此使用地图?我尝试用<ui:repeat>'s 自己创建一个表,但没有这样做。
由于用户可以选择时间段和人员范围,因此列和行可以是动态的。
编辑:解决方案(见答案 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>
【问题讨论】: