我有以下代码要转换为< display:table>
,但我不知道如何显示第二个<c:/forEach>
的内容。
基本上,我的表格显示了与他们相关的学生和注册。每个学生都包含一个注册列表。每一对学生和一个注册应该以新的一行显示。
我尝试了一些事情,但结果并不是我的预期。任何想法都将不胜感激。
我的原始代码:
<c:forEach var="student" items="${students}">
<c:if test="${not empty student.enrolments}">
<c:forEach var="enrolment" items="${student.enrolments}">
<tr class="even_row">
<td class="detail_l">${student.familyName}</td>
<td class="detail_l">${student.firstName}</td>
<td class="detail_l"><fmt:formatDate
value="${student.dateOfBirth}" pattern="dd-MM-yyyy" /></td>
<td class="detail_l">${student.sexCode}</td>
<td class="detail_l">
<a href="javascript:goToMenuOption('sisStudentUnits');">${student.studentNo}</a>
</td>
<td class="detail_l">${enrolment.courseNo}</td>
<td class="detail_l">${enrolment.enrolmentInstitution.instNo}</td>
<td class="detail_l">${enrolment.firstEnrolmentYear}</td>
<td class="detail_l">${enrolment.studentEnrolmentCode}</td>
</tr>
</c:forEach>
</c:if>
</c:forEach>
我的转换,即无效(从注册开始的转换将导致jsp文件出错。例如:查找属性时出错&#34; enrolment.courseNo&#34;):
<display:table name="students">
<display:column property="familyName" title="Surname" />
<display:column property="firstName" title="First Name" />
<display:column property="dateOfBirth" title="Date of Birth" />
<display:column property="sexCode" title="Sex" />
<display:column property="studentNo" title="Student Number" />
<display:column property="enrolment.courseNo" title="Course No (V/A)" />
<display:column property="enrolment.enrolmentInstitution.instNo" title="College/Centre"/>
<!display:column property="enrolment.firstEnrolmentYear" title="Year"/>
<!display:column property="enrolment.studentEnrolmentCode" title="Enr. Status"/>
</display:table>
提前谢谢你,
泰国人
答案 0 :(得分:0)
编辑:请参阅此答案的底部以获取更新的答案...
从forEach示例中我们可以看到forEach正在循环:
$ {student.enrolments}(复数)
并动态创建一个名为“enrollment”(单数)的变量作为临时变量来访问当前行的属性。
但是display:column example的属性属性引用了不存在的“enrollment”(单数)。
您可能希望在此处创建表格(即嵌套表格)。请参阅此示例,并确保查看右上角的“查看源代码”按钮,以了解嵌套表的工作方式:
http://demo.displaytag.org/displaytag-examples-1.1/example-nestedtables.jsp
继续......基于想要包含子列表的平面列表,我相信你需要做这样的事情:
<display:table name="students" id="student">
<c:forEach items="${student.enrolments}" var="enrolment">
<display:column property="familyName" title="Surname" />
<display:column property="firstName" title="First Name" />
<display:column property="dateOfBirth" title="Date of Birth" />
<display:column property="sexCode" title="Sex" />
<display:column property="studentNo" title="Student Number" />
<display:column title="Course No (V/A)">
${enrolment.courseNo}
</display:column>
<display:column title="College/Centre">
${enrolment.enrolmentInstitution.instNo}
</display:column>
...
</c:forEach>
</display:table>