【发布时间】:2026-02-23 19:10:01
【问题描述】:
我有一个这样的数据表:
<p:dataTable id="datatableid" value="#{manageBean.employeeList}" var="employeeObj" >
<p:column style="width:10%;font-weight:bold">
<h:outputText value="#{employeeObj.firstName}-#{employeeObj.orgEmployeeId}"/>
</p:column>
<p:columns value="#{manageBean.fetchDataList(employeeObj)}" var="dataObj">
<h:outputText value="#{dataObj.status}"/>
</p:columns>
</p:dataTable>
我的豆子是:
public List<Attendance> fetchDataList(Employee empObj)
{
System.out.println("**** Inside fectch attendance data **** "+empObj.getName());
List<Attendance> attendanceList = new ArrayList<Attendance>();
return attendanceList;
}
在运行时,在 syso 中我得到空指针异常,因为 empObj 给出了空值。
如何获得 empObj 对象的准确值?
将数据表变量(var)作为参数传递给我用作列中的值的 fetchDataList 方法的正确方法是什么?
【问题讨论】:
-
我之前没有测试建议,但尝试将
value="#{manageBean.fetchDataList(employeeObj)}"更改为value="#{manageBean.fetchDataList(#{employeeObj})}";如果不起作用,请将Employee empObj更改为Object empObj。 -
您尝试以错误的方式使用
columns标签。请参阅 PrimeFaces 展示,了解如何使用它。 -
这里有一个重大的概念错误。一个表的每行不能有不同的列。列将在每个表的基础上定义。
标签: jsf-2 primefaces datatable