日期:2014-05-17  浏览次数:20764 次

JSTL及EL表达式读取SUM求合问题,急!
Java code

        <th height="28">总金额(元)</th>
        <td>${SUM }</td>


在上方获取SUM的循环累加总金额,但是获取不到,

Java code

    <c:forEach var="l" items="${o.ordersLines}">
    <c:set var="SUM" value="${l.oddCount*l.oddPrice }"></c:set>
    <tr>
        <td class="list_data_text">${l.product.prodName }</td>
        <td class="list_data_ltext">${l.oddCount }</td>
        <td class="list_data_text">${l.oddUnit }</td>
        <td class="list_data_text">${l.oddPrice }</td>
        <td class="list_data_text">${l.oddCount*l.oddPrice }</td>
    </tr>
    </c:forEach>


循环中赋值给变量SUM,

如何实现?

------解决方案--------------------
<td class="list_data_text">${l.oddCount*l.oddPrice }</td>


问一个很笨的问题 像这样能获取l.oddCount跟l.oddPrice值?或者应该这样:${l.oddCount }*${l.oddCount*l.oddPrice } ?

还有个问题 ${l.oddCount }这样获取的值是什么类型的?我总感觉像是String的 不妨转下类型再试试

------解决方案--------------------
呃 如此 那 jstl这样写看看 
<c:set scope="page" var="number">
<c:out value="${l.oddCount*l.oddPrice }"/>
</c:set>
------解决方案--------------------
获取的时候这样写 


<td><c:out value="${pageScope.SUM}" default="No Data" /></td>
上面那个 number改成SUM
------解决方案--------------------
你在forEach的上面获得肯定不行啊。
除非你这样写

<c:set var="SUM" value="0"></c:set>
<c:forEach var="l" items="${o.ordersLines}">
<c:set var="SUM" value="${SUM + l.oddCount * l.oddPrice }"></c:set>
</c:forEach>

<th height="28">总金额(元)</th>
<td>${SUM }</td>

<c:forEach var="l" items="${o.ordersLines}">
<tr>
<td class="list_data_text">${l.product.prodName }</td>
<td class="list_data_ltext">${l.oddCount }</td>
<td class="list_data_text">${l.oddUnit }</td>
<td class="list_data_text">${l.oddPrice }</td>
<td class="list_data_text">${l.oddCount*l.oddPrice }</td>
</tr>
</c:forEach>


------解决方案--------------------
写的没问题,你把<c:set var="SUM" value="${l.oddCount*l.oddPrice }"></c:set>
换成<c:set var="abc" value="${l.oddCount*l.oddPrice }" scope="request"></c:set>
试试

------解决方案--------------------
Java code

                        <c:if test="${listSaleOrderDetail!=null}">
                            <c:set var="money" value="0"></c:set>
                            <c:forEach items="${listSaleOrderDetail}" var="li" varStatus="ss">
                            <tr style="FONT-STYLE: normal; BACKGROUND-COLOR: #E5E3D2; TEXT-DECORATION: none">
                                <td>
                                    ${ss.index+1 }
                                </td>