结算功能
// 实现结算功能 @RequestMapping(value = "/checkout", method = RequestMethod.POST) public String checkout(HttpServletRequest request) { // 获取到从购物车里选择想要支付的鲜花的ID String strs = request.getParameter("strs"); // 因为支付的时候需要当前的值,所以要把strs存储到session中 request.getSession().setAttribute("strs", strs); // 动态获取每个鲜花的总价,如果想要动态获取总价,那么name必然是动态的 // 因为name值为选择的花的id的值,所以,name的来源需要基于strs // 分隔strs String[] str = strs.split(","); double sum = 0.0; Map<String, Integer> flowercount = new HashMap<String , Integer>(); Map<String, Double> flowersum = new HashMap<String , Double>(); if (str != null) { for (String id : str) { String s = request.getParameter("p" + id); // 获取鲜花的数量 String c = request.getParameter("count" + id); int count = 0; if (c != null) { count = Integer.parseInt(c); } // 因为此项数据需要在后面获取,所以需要先存储到 Map集合中 flowercount.put(id, count); double sumone = Double.parseDouble(request.getParameter("p" + id)); // 因为订单详情需要此总价,所以需要将此数据存储到map中 flowersum.put(id, sumone); sum += sumone; } } // 将以上花的数量存储到session request.getSession().setAttribute("flowercount", flowercount); // 将以上花的总价存储到session中 request.getSession().setAttribute("flowersum", flowersum); request.getSession().setAttribute("sum", sum); // 在进行页面跳转之前,此处从数据库中查询到某认的地址,存储到地址对象中,并将地址对象存储到request对象中,那么页面跳转的时候就可以在checkout.jsp页面获取到对象信息 // 注意,因为页面显示的是默认地址,所以不需要使用forEach // 所谓的默认地址即为地址设置的标识为默认(实现方式可以添加一个字段,当为1的时候表示默认,为0的时候是非默认) // request.getRequestDispatcher("checkout.jsp").forward(request, response); return "checkout.jsp"; }
只是为了更好的团圆...