el表达式去掉重复的数据,1个订单号对应多个商品的布局##
1:功能:点击订单信息显示订单详情(订单下可能出现一个或者多个商品)
(适用于查看订单信息等操作,不支持list遍历订单查询模块)
2:效果截图(黑色为订单数据,红色为商品数据)
3:用table表格显示出来,此时要考虑商品实付款的信息是订单的信息。而放在商品信息在tr里面,List商品信息时不处理后面的订单信息商品会出现以下效果。
并不是我们想要的效果。
4:解决方法:用el表达式格式化
- Jsp页面加上标签:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
- 页面代码
<c:forEach items="${bog}" var="b" varStatus="i">
<c:if test="${bol.buyerOrderList.bolId == b.orderGood.bolId }">
<tr>
<td>
<img src="/pic/scan/${b.orderGood.goodsUrl}" title="${b.gInfo.gTitle}" />
</td>
<td>${b.gInfo.gName}</td>
<td>${b.gInfo.gOriginalPrice}</td>
<td>x ${b.orderGood.goodsNumber}</td>
<td>${b.orderGood.goodsColor }</td>
<td>${b.orderGood.goodsSize }</td>
<c:if test="${i.first }">
<td rowspan="${fn:length(bog) }">
¥:${bol.buyerOrderList.goodsPayablesprice}
<br/>
优惠卷:(-¥:${bol.buyerOrderList.useCouponPrice})
<br/>
运费:(+¥:${bol.company.logPrice})
</td>
</c:if>
</tr>
</c:if>
</c:forEach>
- 页面截图
5:说明:
- < c:forEach items="${bog}" var=“b” varStatus=“i”>
items="${bog}":后面保存的集合对象
var=“b” : 对象的别名
varStatus=“i” 判断当前项是否为集合中的第一项,返回值为true或false
- < td rowspan="${fn:length(bog) }">
rowspan:跨行
${fn:length(bog) } 获取集合的长度,相当于后台的 list.size();