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 に答える