2011-07-04 25 views
1

我有一个NULLPointerException。 我有一个名为Workhours的对象,它有小时和工作日(枚举值)列表。 现在,我有一个列表 我想将它显示在一个数据表中,工作日(枚举)名称为一行,小时为列。现在,这是我试过的:呈现动态列时的数据表问题

   <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:列不起作用(当我把它展示出来,工作日的演示文稿作为行)?

在此先感谢!

回答

1

我不认为有可能在单个Primefaces数据表中混合使用动态和静态列。你必须选择一种方法或其他方法。

如果您希望在此范围内显示workday列,那么也许您可以创建创建一个可视合成实体类型,该类型将工作日和行实体的属性合并为一个类型。 Workday可以是动态列集合中始终存在的另一个对象。

+0

我会试一试并尽快更新 – lionheart

+0

我需要对我的实体进行一些修改,以便为数据表提供正确的动态列。在我看来,奇怪的是我必须根据GUI修改我的数据库实体...噢,当它工作时,不要惹它... – lionheart

+0

@lionheart,我很高兴为你工作。这在任何将实体直接绑定到UI组件的框架中并不罕见。在我的设计中,我通常会创建普通的持久性/ ORM实体,并将这些实体直接绑定到简单的UI组件,然后我也有View实体/组合实体,它们包装一个或多个基础实体以对列进行自定义显示和控制。在为WinForms,ASP.NET和JSF2编写的应用程序中,我有类似的设计。 –