JSTL:从数组中删除最后一项

时间:2012-05-21 14:39:20

标签: java jstl

想知道是否可以使用JSTL从数组中删除最后一项?目前我正在使用c:url将参数(从数组中)附加到超链接。我希望能够删除最后一个参数......

以下是c:url追加参数

的代码
 <c:url value="search" var="url">
    <c:param name="q" value="${q}"/>
    <c:forEach var="field" items="${fq}">
        <c:param name="fq" value="${field}"/>
    </c:forEach>
</c:url>

1 个答案:

答案 0 :(得分:4)

不,那是不可能的。您无法在JSTL中操作数组。您可以将最后一项设置为null,但这不会更改数组的长度。

您的特定情况中,还有另一种方法:您可以通过选中LoopTagStatus#isLast()检查您当前是否正在迭代最后一个数组项,然后在{{中完全跳过该项1}}

<c:param>

请注意,我删除了<c:url value="search" var="url"> <c:param name="q" value="${q}"/> <c:forEach var="field" items="${fq}" varStatus="loop"> <c:if test="${not loop.last}"> <c:param name="fq" value="${field}"/> </c:if> </c:forEach> </c:url> 支票,因为这是不必要的。如果没有项目,fn:length()已经不会迭代。