一个订单有时会有多个商品,对于这种情况,就需要查询多个子对象,以下是在layui servlet中的用法
1.显示结果
以上为一个订单对应两个商品
2.在订单实体类(Order)中传入订单商品详情(OrderDetail)的集合
private List<OrderDetail> orderDetails;
public List<OrderDetail> getOrderDetails() {
try {
orderDetails = OrderDetailDao.findByPid(id);
}catch(Exception e) {
e.printStackTrace();
}
return orderDetails;
}
public void setOrderDetails(List<OrderDetail> orderDetails) {
this.orderDetails = orderDetails;
}
3.在servlet返回界面层的时候带上订单商品详情的list
List<OrderDetail> dlist=OrderDetailDao.selectAll();
request.setAttribute("list", dlist);
System.out.print(dlist);
request.getRequestDispatcher("/WEB-INF/jsp/sys/order_allorder.jsp").forward(request, response);
4.界面层处理(pid为OrderDetail表的外键 对应Order表的id主键),首先要判断id和pid,必须相等才可拿出值,否则拿到的是整个集合
因为商品要显示多个字段,所以在layui-table里面的用法如上,需要用一个id标识,自定义样式
<script type="text/html" id="product">
<c:forEach items="${list}" var="item">
{{# if(d.id == ${item.pid}){ }}
<img style="display: inline-block; width:60px; height:60px;" src= ${item.logo}>
<span> ${item.title}<span/>
{{# } else{ }}
<span><span/>
{{# } }}
</c:forEach>
</script>