我必须显示标题为“Region”的数据库列中的列表.....对于该列表中的每个项目,如果,它包含子值(Division),它必须显示类似这样的内容,
1 NorthEast Division1 | Division2
2中西部分区1 | Division2 | Division3
3南区1 ....等
这是我到目前为止所做的,我已将区域和分区放在单独的列表中,并通过将其循环到<c:foreach>
内来调用,如下所示,
<c:forEach var="DivisionList" items="${RegionSection.DivisionList}" varStatus="vs">
<c:if test="${DivisionList.divisionID== id}" >
${DivisionList.title}
</c:if>
</c:forEach>
通过使用上面的内容,我能够在没有管道“|”....的情况下获取和排列整个数据来追加管道我尝试使用“最后”条件<c:if test="${!vs.last}"> | </c:if>
但是这个只删除分区列表最后一项中的管道,这不是我想要的......
是否有可以使用Jstl实现的解决方法或者我是否必须使用Javascript才能使其正常工作?任何帮助将不胜感激......
由于
答案 0 :(得分:1)
您应该关心变量的命名,因为DivisionList
属性实际上是Division
,并且应该命名为变量,并使用小写d:division
只需使用反向策略:在除第一个分区之外的每个分区之前添加一个管道,并使用一个标志来知道第一个分区是否已经显示:
<c:set var="first" value="true"/>
<c:forEach var="division" items="${RegionSection.DivisionList}">
<c:if test="${division.divisionID == id}">
<c:if test="${!first}"> | </c:if><c:out value="${division.title}"/>
<c:set var="first" value="false"/>
</c:if>
</c:forEach>
此外,使用c:out
可确保正确转义特殊HTML字符(例如<
,>
)。