Jstl删除附加符号

时间:2012-01-23 07:19:53

标签: java list jstl jsp-tags

我必须显示标题为“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才能使其正常工作?任何帮助将不胜感激......

由于

1 个答案:

答案 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字符(例如<>)。