2

我有两个数组列表。员工名单和分配名单。

每个员工都有分配清单。

Employee类如下。

public class Employee {

    private int id;   
    private String firstname;

    private String lastname;

    private List<Allocation> allocationList ; 

    // geters and setters

}

Allocation类如下

public class Allocation {

    private int categoryId;

    private String categoryName;

    private float allocation;

    // getters and setters

}

假设我们有名为 X、Y 和 Z 的三个分配类别。

每个员工都将具有这些类别中的每一个的对应值。

员工 erik 的 X= 10、Y = 20 和 Z = 67 等等。

如何使用显示标签显示员工详细信息以及每个员工的这些分配,如下图所示。

在此处输入图像描述

我不想使用显示标签的嵌套表功能,它允许显示嵌套列表,因为嵌套列表未在显示标签中导出。

4

1 回答 1

3

好的。所以我自己想通了。下面是工作代码。

<display:table name="employeeList" pagesize="25" class="listingTable" keepStatus="true" cellpadding="0px"
  cellspacing="0px" id="employee" export="true" requestURI="">
  <display:setProperty name="export.decorated" value="true" />
  <display:setProperty name="export.excel.filename" value="${exportFileName}.xls" />

  <c:forEach var="cl" items="${selectedColumnList}">
    <display:column property="${cl.property}" title="${cl.title}" format="${cl.format}" />
  </c:forEach>

  <c:forEach var="allocationCl" items="${allocationCategoryList}" varStatus="status">
    <c:set var="allocationCounter" value="${status.index}" />
    <display:column title="${allocationCl.category}">
      <c:choose>
        <c:when test="${fn:length(employee.allocations) ne '0' }">
      ${employee.allocations[allocationCounter].allocation}
    </c:when>
        <c:otherwise>
      0
    </c:otherwise>
      </c:choose>
    </display:column>
  </c:forEach>

  <display:setProperty name="paging.banner.item_name" value="Employee" />
  <display:setProperty name="paging.banner.items_name" value="Employees" />
</display:table>
于 2012-07-06T09:23:29.697 回答