JSTL x:forEach 逗号分隔输出

发布于 2024-10-21 18:19:14 字数 439 浏览 0 评论 0原文

我有一个包含以下内容的 xml 文件:

<authors>
    <author>name 1</author>
    <author>name 2</author>
    <author>name 3</author>
</authors>

我想用 JSTL 将其解析为如下列表:

name1, name2, name3

并且,如果超过 3 个:

name1, name2, name3 et. al

我使用 输出姓名并以特定作者结尾,但如何获取逗号并检查列表长度?

I've got an xml file with the following contents:

<authors>
    <author>name 1</author>
    <author>name 2</author>
    <author>name 3</author>
</authors>

and I'd like to parse it with JSTL to a list like:

name1, name2, name3

and, if there are more than 3:

name1, name2, name3 et. al

I've got no problems using a <x:forEach ..> that puts out the names and to end at a specific author, but how to get the commas and check for the list length?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冰雪之触 2024-10-28 18:19:14

varStatus 属性与 end 属性结合使用。 varStatus 指的是本地 < code>LoopTagStatus 实例,提供多种 getter 方法,例如 getIndex()isLast()end 属性指定迭代应结束的索引。

<x:forEach select="..." var="author" varStatus="loop" end="3">
    <c:if test="${loop.index lt 3}">${author}</c:if>
    <c:if test="${loop.index lt 2 and not loop.last}">,</c:if>
    <c:if test="${loop.index eq 3}">et. al</c:if>
</x:forEach>

Use the varStatus attribute in combination with end attribute. The varStatus refers to a local LoopTagStatus instance which offers several getter methods, such as getIndex() and isLast(). The end attribute specifies the index where the iteration should end.

<x:forEach select="..." var="author" varStatus="loop" end="3">
    <c:if test="${loop.index lt 3}">${author}</c:if>
    <c:if test="${loop.index lt 2 and not loop.last}">,</c:if>
    <c:if test="${loop.index eq 3}">et. al</c:if>
</x:forEach>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文