在jsp / jstl中的一个表中显示3个不同列表中的数据

时间:2018-02-12 06:34:01

标签: java mysql list jsp jstl

我有三个清单。员工,技能组合,EmployeeSkillsetsRating。

我希望打印如下表格,其中空格将在该技能组中具有等级。

            EmployeeName1   EmployeeName2   EmployeeName3

Skillset1
Skillset2
Skillset3
Skillset4
Skillset5

现在,我可以使用“员工”列表成功打印所有员工姓名作为第一行。 此外,我可以使用“技能组”列表成功打印所有技能组作为第一列。 以下是工作代码

        <table border="1">

        <th>Activities</th>
        <c:forEach var="employee" items="${listEmployee}">
            <th>
                <td>${employee.name}</td>
            </th>
        </c:forEach>
        <c:forEach var="activity" items="${listActivity}" >
            <tr>
                <td>${activity.activityDetails}</td>
            </tr>
        </c:forEach>
    </table>

现在员工的评级来自评级列表,评级列表还包含EmployeeList的EmployeeID和Skillset List的SkillsetID。如何通过匹配员工姓名和技能组来打印表中的评级。

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样:

    <th>Activities</th>
    <c:forEach var="employee" items="${listEmployee}">
        <th>
            <td>${employee.name}</td>
        </th>
    </c:forEach>
    <c:forEach var="activity" items="${listActivity}" >
        <tr>
            <td>${activity.activityDetails}</td>
           <c:forEach var="employee" items="${listEmployee}">
              <c:forEach var="rating" items="${listRating}">
                 <c:if test = "${rating.employee==employee.ratingDetails && rating.activity==activity.activityDetails)">
                      <td>${rating.ratingDetails}</td>
               </c:if>

              </c:forEach>
           </c:forEach>

        </tr>
    </c:forEach>
</table>

对于每个activity,您循环浏览每个employee,如果您在rating列表中找到该员工和活动的ratings,则将其打印为列值。

评级列表中的每位员工都必须有评分。