jstl bigdecimal在c:foreach中添加?

时间:2014-01-23 04:54:15

标签: jsp jstl bigdecimal addition

以下语法有什么问题?

 <c:set var="returnAmt" value="${0.00}"/> 
 <c:forEach items="${stPts.olList}" var="Item" varStatus="counterMap">
    <c:if test="${Item.originalDollarValue.compareTo(BigDecimal.ZERO) ne 0}">
        <c:set var="returnAmtVal" value="${returnAmt + Item.originalDollarValue}" />
    </c:if>
 </c:foreach>

当我c:out时,我总是得到0.00作为returnAmtVal ..

1 个答案:

答案 0 :(得分:1)

使用方法add()

支持BigDecimal添加

请注意,必须将操作结果分配给变量:

BigDecimal a = BigDecimal.ZERO; //a=0
a = a.add(BigDecimal.TEN);      //a=10

因此,假设 Item.originalDollarValue BigDecimal ,您的JSP必须是这样的:

<c:set var="returnAmtVal" value="${returnAmtVal.add(Item.originalDollarValue)}"/>