// 取出购物车和添加的书籍
Map cart = (Map) session.getAttribute("cart");
BookBean book = (BookBean) session.getAttribute("bookToAdd");
// 如果购物车不存在,创建购物车
if (cart == null) {
cart = new HashMap();
// 将购物车存入session之中
session.setAttribute("cart", cart);
}
// 判断书籍是否在购物车中
CartItemBean cartItem = (CartItemBean) cart.get(book.getISBN());
// 如果书籍在购物车中,更新其数量.
// 否则,创建一个条目到Map中.
if (cartItem != null){
cartItem.setQuantity(cartItem.getQuantity() + 1);
cart.put(book.getISBN(),cartItem);
}
else
cart.put(book.getISBN(), new CartItemBean(book, 1));
// 转向viewCart.jsp显示购物车
dispatcher = request.getRequestDispatcher("/viewCart.jsp");
dispatcher.forward(request, response);
显示购物车信息
<%
Map cart = (Map) session.getAttribute("cart");
double total = 0;
if (cart == null || cart.size() == 0)
out.println("
购物车当前为空.
");else {
// 创建用于显示内容的变量
Set cartItems = cart.keySet();
//Iterator iterator = cartItems.iterator();
Object[] isbn = cartItems.toArray();
BookBean book;
CartItemBean cartItem;
int quantity;
double price, subtotal;
%>
| 书籍名称 | 数量 | 价格 | 小计 |
|---|---|---|---|
| <%= book.getTitle() %> | <%= quantity %> | <%= new DecimalFormat( "0.00" ).format( price ) %>
| <%= new DecimalFormat( "0.00" ).format( subtotal ) %>
|
| 总计: <%= new DecimalFormat( "0.00" ).format( total ) %>
|
<% // continue scriptlet
// make current total a session attribute
session.setAttribute( "total", new Double( total ) );
} // end of else
%>
购物车单项商品类
public class CartItemBean implements Serializable {
private static final long serialVersionUID = 1L;
private BookBean book;
private int quantity;
/**
* @return book
*/
public BookBean getBook() {
return book;
}
/**
* @param book
* 要设置的 book
*/
public void setBook(BookBean book) {
this.book = book;
}
/**
* @return quantity
*/
public int getQuantity() {
return quantity;
}
/**
* @param quantity
* 要设置的 quantity
*/
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public CartItemBean(com.entity.BookBean book, int number) {
this.book = book;
this.quantity = number;
}
}下载本文