如何在jsp页面的html表中重用相同的标签

时间:2013-07-21 11:04:23

标签: html jsp jstl html-table jsp-tags

我在jsp页面里面有html表。我的代码如下所示:

<c:choose>    
    <c:when test="${empty institutionAttributes}">      
        <h2 align="center"><spring:message code="label.attributes.msg"/> </h2>      
    </c:when>

    <c:otherwise>
        <h3 align="center"><spring:message code="label.result.msg"/> </h3>      
        <table border="1" align="center">               
        <thead>
            <tr>
                <th align="center"><spring:message code="label.header.table.name" /></th>
                <th align="center"><spring:message code="label.header.table.type" /></th>
                <th align="center"><spring:message code="label.header.table.date" /></th>
                <th align="center"><spring:message code="label.header.table.dayscheduale" /></th>
                <th align="center"><spring:message code="label.header.table.workscheduale" /></th>
                <th align="center"><spring:message code="label.header.table.rotation" /></th>
                <th align="center"><spring:message code="label.header.table.numberkids" /></th>
                <th align="center"><spring:message code="label.header.table.under3" /></th>
                <th align="center"><spring:message code="label.header.table.upper3" /></th>
                <th align="center"><spring:message code="label.header.table.goschool" /> <br> <fmt:formatDate value="${formDescriptionVar.kidsGoSchoolDate}" pattern="yyyy"/>  <spring:message code="label.header.table.year" /></th>
            </tr>
        </thead>

        <tbody>                 
            <c:forEach items="${institutionAttributes}" var="institutionVar">
                <tr>
                    <td align="center">${institutionVar.nameOfInstitution}</td>
                </tr>
            </c:forEach>

            <c:forEach items="${institutionTypeAttributes}" var="institutionTypeVar">
                <tr>
                    <td align="center">${institutionTypeVar.typeOfInstitution}</td>
                </tr>
            </c:forEach>

            <c:forEach items="${formDateAttributes}" var="formDateVar">
                <tr>
                    <td align="center"><fmt:formatDate value="${formDateVar.particularDate}" pattern="dd-MM-yyyy"/>  </td>
                </tr>
            </c:forEach>

            <c:forEach  items="${formDescriptionAttributes}" var="formDescriptionVar">
                <tr>
                    <td align="center">${formDescriptionVar.daySchedule}</td>
                    <td align="center">${formDescriptionVar.workScheduale}</td>
                    <td align="center">${formDescriptionVar.rotation}</td>
                    <td align="center">${formDescriptionVar.numberOfKids}</td>
                    <td align="center">${formDescriptionVar.kidsUnder3YearsOld}</td>
                    <td align="center">${formDescriptionVar.kidsUpper3YearsOld}</td>
                    <td align="center">${formDescriptionVar.kidsGoSchoolNumber}</td>            
                 </tr>
            </c:forEach>
            </tr>           

        </tbody>

        </table>
    </c:otherwise>
</c:choose>

在JSP页面内部,我有<thead><tbody>标签的表格。

<tbody>内部我使用JSP的<c:forEach>标记。

<c:forEach>内,我使用<tr><td>标签。

在我想要的照片中:

|------------------------------------|
|  Header1  |  Header2  |  Header3   |
|------------------------------------|
|   Value1  |  Value2   |  Value3    |
|------------------------------------|

我得到了什么:

 |------------------------------------|
 |  Header1  |  Header2  |  Header3   |
 |------------------------------------|
 |   Value1  |           |            |
 |------------------------------------|
 |           |  Value2   |            |
 |------------------------------------|
 |           |           |   Value3   | 
 |------------------------------------|

所以,问题是<c:forEach>在每个<tr>内创建新<c:forEach>,但我需要的是使用相同 <tr>在不同的<c:forEach>。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

或者我没有正确理解你的问题,或者你的问题有一个非常简单的解决方案。

您只需将<tr>标记放在forEach之外,例如:

<tr>
  <c:forEach items="${institutionAttributes}" var="institutionVar">
    <td align="center">${institutionVar.nameOfInstitution}</td>
  </c:forEach>
</tr>

这将在表格中仅创建一行,institutionAttributes中的每个值都有一列...

处理foreach后,您的HTML将如下所示:

<tr>
  <td align="center">nameOfInstitution1</td>
  <td align="center">nameOfInstitution2</td>
  <td align="center">nameOfInstitution3</td>
  ...
</tr>