1

想知道是否可以使用 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>
4

1 回答 1

4

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

但是,在您的特定情况下,还有另一种方法:您可以通过检查来检查您当前是否正在遍历最后一个数组项LoopTagStatus#isLast(),然后完全跳过该项<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()检查,因为那是不必要的。<c:forEach>如果没有项目,则已经不会迭代。

于 2012-05-21T14:42:54.247 回答