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>