本项目聚焦于改进在线购物平台中的商品购买数量模块,旨在通过优化购物车功能提升用户体验和购物流程效率。
当用户点击“修改数量”按钮后,页面会发送一个请求到`cart.do?flag=1`。此请求由位于`CartController.java`类中的changeNum()方法处理。以下是该方法的代码:
```java
public void changeNum(HttpServletRequest request, HttpServletResponse response) {
List lsc = (List) request.getSession().getAttribute(Shoppingcart); // 获取购物车Session
try {
String[] number = request.getParameterValues(num); // 使用数组获取页面传递的参数值
List listSc = new ArrayList<>();
for (int i = 0; i < lsc.size(); i++) {
// 循环遍历购物车中的商品,并逐一修改其数量
lsc.get(i).setNumber(Integer.parseInt(number[i]));
listSc.add(lsc.get(i)); // 将更新后的商品添加到新的列表中
}
request.getSession().setAttribute(Shoppingcart, listSc); // 重新设置Session的值为更新后的购物车
RequestDispatcher rd = request.getRequestDispatcher(selectSC.jsp);
rd.forward(request, response); // 页面重定向至selectSC.jsp页面
} catch (Exception e) {
e.printStackTrace(); // 将异常信息输出到控制台
}
}
```
这段代码的功能是获取用户购物车中的商品列表,通过参数数组修改每个商品的数量,并将更新后的数据存储回Session中。最后,它会转发请求至`selectSC.jsp`页面进行显示或进一步处理。