数据库订单数据读取到前端展示
2017-10-04 15:06
260 查看
最近做了一个将数据库中的订单信息读取到前端展示的功能,在此简述之。
因为要展示的订单有发货和未发货两种,故在jsp页面中用两个div,以foreach循环显示每一个订单以及其中的商品属性。代码如下所示:
其中findlist和findlists就是从后端用json传来的数据库订单数据,一个代表已发货,一个代表未发货,其中前端展示的数据和样式有一些区别,故写成了两段。
后端架构依旧是spring mvc + mybatis,请求到达controller类后,通过service类进行逻辑处理,再通过mapper.xml映射到数据库中取得需要展示的数据。
Controller类的写法都大同小异,进来之后会验证这个用户是否在session中,如果在的话可以进入我的订单页面,如果没有会转入登录界面。如果用户存在,则在其中调用sevice接口的方法,将订单信息存到一个list里去,此list的类型为这个流程定义的实体类,再将此list存入model里,最后用return返回ModelAndView将数据传到前端去。代码如下所示:
public ModelAndView getUndeliverMaterial(Material material,Model model,HttpServletRequest request){
String code = request.getParameter("code");
//System.out.println("byNewMachine code :"+code);
User u = this.getUser(request.getSession());
if(u!=null&&!StringUtil.isEmpty(u.getPhone())){
material.setPhone(u.getPhone());
List<Material> findList = materialService.getUndeliverMaterial(material);
List<Material> findLists = materialService.getDeliverMaterial(material);
model.addAttribute("findList", findList);
model.addAttribute("findLists", findLists);
return new ModelAndView("My-material");
}else{
return new ModelAndView(" ");
}
}
}
Sevice类为一个接口,其中声明了逻辑实现的各种方法,由对应的SeviceImpl来实现,这边我为一个findlist写了两个方法,一个方法是取整个订单的数据,一个用循环取出订单中的每一个商品的各种属性。这两个方法都是调用mapper接口中的方法来取数据库的相应数据。
Mapper也是接口,与mapper.xml中每一个sql语句对应,取出需要展示的数据。mapper.xml与数据库sql语句的写法大同小异,就是每个语句写成一个段,依照相应的功能使用select或者update等,其中id就是mapper借口中的方法,并设置相应的参数类型和返回类型。
通过一个这样的流程,就可将数据库相应的订单信息展示到前端中。
因为要展示的订单有发货和未发货两种,故在jsp页面中用两个div,以foreach循环显示每一个订单以及其中的商品属性。代码如下所示:
<div class="content"> <div class="lists"> <c:forEach items="${findList}" var="a"> <div class="info"> <div class="order"> <span class = "orderSn num">订单编号: ${a.orderSn}</span> <span class="state" >待发货</span> </div> <div class="info-material"> <c:forEach items="${a.materialDetailList}" var="b"> <div class="pic_one"> <img src="${b.imageUrl}"/> <div class="info_one"> <span class="name">${b.materialName}</span> <span class="money">${b.price}</span> </div> <div class="info_two"> <span class="height">${b.quantity}</span>g/袋 <span class="count">x${b.materialNum}</span> </div> </div> </c:forEach> </div> <div class="details"> <p class = "details_one">下单时间:${a.createTime}</p> <p class = "details_two">共${a.materialNums}件商品 运费合计 ¥${a.freightPrice}</p> <p class = "details_three">实付 ¥${a.orderPrice}</p> </div> </div> </c:forEach> </div> <div class="lists" style="display:none;"> <c:forEach items="${findLists}" var="c"> <div class="info"> <div class="order"> <span class = "orderSn num">订单编号: ${c.orderSn}</span> <span class="state" style="color: #1DCF57;">已发货</span> </div> <div class="info-material"> <c:forEach items="${c.materialDetailList}" var="d"> <div class="pic_one"> <img src="${d.imageUrl}"/> <div class="info_one"> <span class="name">${d.materialName}</span> <span class="money">¥${d.price}</span> </div> <div class="info_two"> <span class="height">净含量:${d.quantity}g/袋</span> <span class="count">x${d.materialNum}</span> </div> </div> </c:forEach> </div> <div class="details"> <p class = "details_one">物流单号:${c.logisticsOrder}(${c.logisticsName})</p> <p class = "details_two">发货时间:${c.createTime}</p> <p class = "details_three">共${c.materialNums}件商品运费合计 ¥${c.freightPrice}</p> <p class = "details_four">实付 ¥${c.orderPrice}</p> </div> </div> </c:forEach> </div> </div>
其中findlist和findlists就是从后端用json传来的数据库订单数据,一个代表已发货,一个代表未发货,其中前端展示的数据和样式有一些区别,故写成了两段。
后端架构依旧是spring mvc + mybatis,请求到达controller类后,通过service类进行逻辑处理,再通过mapper.xml映射到数据库中取得需要展示的数据。
Controller类的写法都大同小异,进来之后会验证这个用户是否在session中,如果在的话可以进入我的订单页面,如果没有会转入登录界面。如果用户存在,则在其中调用sevice接口的方法,将订单信息存到一个list里去,此list的类型为这个流程定义的实体类,再将此list存入model里,最后用return返回ModelAndView将数据传到前端去。代码如下所示:
public ModelAndView getUndeliverMaterial(Material material,Model model,HttpServletRequest request){
String code = request.getParameter("code");
//System.out.println("byNewMachine code :"+code);
User u = this.getUser(request.getSession());
if(u!=null&&!StringUtil.isEmpty(u.getPhone())){
material.setPhone(u.getPhone());
List<Material> findList = materialService.getUndeliverMaterial(material);
List<Material> findLists = materialService.getDeliverMaterial(material);
model.addAttribute("findList", findList);
model.addAttribute("findLists", findLists);
return new ModelAndView("My-material");
}else{
return new ModelAndView(" ");
}
}
}
Sevice类为一个接口,其中声明了逻辑实现的各种方法,由对应的SeviceImpl来实现,这边我为一个findlist写了两个方法,一个方法是取整个订单的数据,一个用循环取出订单中的每一个商品的各种属性。这两个方法都是调用mapper接口中的方法来取数据库的相应数据。
Mapper也是接口,与mapper.xml中每一个sql语句对应,取出需要展示的数据。mapper.xml与数据库sql语句的写法大同小异,就是每个语句写成一个段,依照相应的功能使用select或者update等,其中id就是mapper借口中的方法,并设置相应的参数类型和返回类型。
通过一个这样的流程,就可将数据库相应的订单信息展示到前端中。
相关文章推荐
- 【JAVA秒会技术之搞定BLOB数据类型】如何读取及展示数据库中BLOB类型的图片
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
- 读取数据库数据——分页展示
- asp.net 从数据库中读取而二进制数据图片,展示在Image中
- linq自数据库中读取数据,返回匿名类型对象,以供前端使用
- 关于Java语言的eclipse读取数据库,并将数据转换成JSON格式输出
- 从数据库中读取数据时报错,sqlserver默认值问题
- JSP自定义标签实例---从数据库读取数据放在下拉列表中
- VC中连接mdb数据库及其数据读取方法
- vc2008: 控制台程序将数据写入MySql(数据库信息从配置文件读取)
- PHP 从数据库Mysql中读取数据生成excel(解决乱码问题,解决中文变问号问题)
- php使用PDO从数据库表中读取数据
- php读取txt文件并将数据插入到数据库
- ThinkPHP读取数据库数据到模板文件
- 数据库的连接及数据读取,显示操作
- SQL读取数据库数据(.sql)导入数据
- 从Excel读取数据并存入数据库
- java jsp struts2标签 从数据库中读取含有html标签的数据显示问题
- phpexcel 读取含多个sheet的excel,将从数据库中检索出的数据分别写入该excel不同的sheet中 并导出该excel