一尘不染

JSTL forEach的问题从arrayList进行迭代

jsp

在我的代码中,我使用了ArrayList,它在数组列表的每个索引中存储数字格式,例如’$ 0.00到$
1,000,000.00’。通过<c:forEach>标签在JSP中进行迭代时,其值像

$ 0.00至$ 1作为第一个字符串,000作为第二个字符串,000.00作为第三字符串。但它必须打印为“ $ 0.00至$ 1,000,000.00”。

问题是什么?

提前致谢


阅读 254

收藏
2020-06-10

共1个答案

一尘不染

您正在遍历数组的元素,而不是遍历数组本身。因此,数组“ $ 0.00到$ 1,000,000.00”的元素在逗号位置分割,您将获得如上所述的单个元素。

以下是一个示例:

<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
 java.util.ArrayList list = new java.util.ArrayList();
 list.add("$0.00 to $1,000,000.00");
 list.add("$1,000,000.00 to $1,000,000,000.00");
 request.setAttribute("list", list);
%>

<h1>Iterating over ArrayList</h1>
<ul>
 <c:forEach items="${list}" var="value">
  <li><c:out value="${value}"/></li>
 </c:forEach>
</ul>

<h1>Iterating over first element of ArrayList</h1>
<ul>
 <c:forEach items="${list[0]}" var="value">
  <li><c:out value="${value}"/></li>
 </c:forEach>
</ul>
2020-06-10