This question already has an answer here:
Get specific element in a list or array using EL

(1个答案)


5年前关闭。




这也许是一件相对简单的事情,但是由于某种原因,我似乎并没有正确地做到这一点。

如何基于索引从jSTL中的arrayList中获取元素。

在纯Java中,可以说我有这个arralist
ArrayList< String > colors = new ArrayList< String >();
   colors.add("red");
   colors.add("orange");
   colors.add("yellow");
   colors.add("green");
   colors.add("blue");

如果我执行System.out.println(colors.get(1));,我将从基于arrayList的第一种颜色
在我提供的索引上恰好是red

想知道如何在jSTL中实现。我在jSTL中使用了foreach标记,但并没有完全正确。
<c:forEach items="colors" var="element">
 <c:out value="${element.get(1)}"/>
</c:forEach>

最佳答案

当您说colors.get(1);${element[1]}时,它实际上是指列表中的单个条目。但是,当您使用c:forEach时,它会迭代循环。
这取决于您要实现的目标。如果只想第N个元素,请尝试

<c:out value="${colors[1]}"/> // This prints the second element of the list

但是相反,您想打印整个元素,应该像这样循环
<c:forEach items="${colors}" var="element">
    <c:out value="${element}"/>
</c:forEach>

另外请注意,如果您像<c:forEach items="colors" var="element">一样编写,则将其字面值视为"colors"。因此,如果它是一个变量名,则需要使用${}之类的${colors}进行命名,如上面的示例所示。

关于java - 根据jSTL中的索引获取arraylist的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24019845/

10-10 13:38