想知道是否可以使用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>
答案 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()
已经不会迭代。