2010-06-01 78 views
0

在我的代碼中,我使用了ArrayList,它在數組列表的每個索引中存儲數字格式,如'$ 0.00到$ 1,000,000.00'。同時在JSP中通過<c:forEach>標記進行迭代, 將其值打印爲JSTL for array arrayList迭代問題

作爲第一個字符串$ 0.00到$ 1,作爲第二個字符串的000和作爲第三個字符串的000.00。 但它必須打印'$ 0.00到$ 1,000,000.00'。

會出現什麼問題?

在此先感謝

+0

如何發佈您的代碼? – stacker 2010-06-01 06:02:00

回答

3

您正在遍歷數組元素,而不是數組本身。因此,數組「$ 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> 
0

我不知道,如果我得到這個權利,但考慮使用JSTL fmt tag library。其formatNumber tag可以處理貨幣。您的示例將變爲:

<c:forEach var="item" items="list"> 
    <fmt:formatNumber type="currency" currencySymbol="$" value="${item}" currencyCode="USD" /> 
</c:forEach> 
0

嘿,我有同樣的問題,解決的辦法是修整的空間在for:each標籤。

所以不是這樣(注意之前的 '>' 的空間)

c:forEach items="${list}" var="value" > 

c:forEach items="${list}" var="value"> 

//沒有空格。

這將工作肯定..它令人沮喪......但這是它的方式。

+0

這沒有意義。你最初的問題是由別的東西引起的。 – BalusC 2010-08-26 14:01:50