我有一个NULLPointerException。 我已经添加了一个名为Workhours的对象,它有一个小时列表和一个工作日(枚举值)。 现在,我有一个清单 我想将它呈现在一个数据表中,其中workday(枚举)名称为行,小时为列。现在,这就是我的尝试:
<p:dataTable id="dtWorkHours" var="workhour" value="#{uploadImagesPage.lwh}" >
<p:column>
<f:facet name="header">
<h:outputText value="Days"></h:outputText>
</f:facet>
<h:outputText value="#{workhour.workday}"></h:outputText>
</p:column>
<p:columns value="#{workhour.luh}" var="columnUntilHours" columnIndexVar="index">
<f:facet name="header">
#{columnUntilHours.untilhours}
</f:facet>
<h:selectBooleanCheckbox value="#{columnUntilHours.checked}" >
</h:selectBooleanCheckbox>
</p:columns>
</p:dataTable>
我检查了WorkHours对象的初始化,看起来好像已经到位了。有什么理由我p:列不起作用(当我把它放出来时,工作日表示为行有效)?
提前致谢!
答案 0 :(得分:1)
我不相信可以在单个Primefaces dataTable中混合动态和静态列。您必须选择一种方法或另一种方法。
如果您希望在其中显示workday
列,那么您可以创建创建可查看的复合实体类型,该类型将工作日和行实体的属性组合为单个类型。工作日可以是动态列集中始终存在的另一个对象。