我有这样的数据表:
<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给出了null。
如何获得empObj对象的确切值?
将数据表变量(var)作为参数传递给fetchDataList方法的正确方法是什么?我将其用作列中的值?
答案 0 :(得分:0)
感谢评论家伙。我自己解决了这个问题。
我为columns标签创建了一个新列表,并在Employee pojo中创建了MAP并使用该MAP,传递了密钥并获得了值。
<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.newList}" var="dataObj">
<h:outputText value="#{employeeObj.getMap().get(dataObj.status)}"/>
</p:columns>
</p:dataTable>