public class CartAction extends ActionSupport{ private int book_id; private int num; private String bookname; private String author; private String publisher; private String isbn; private float price; private String picture; private int qty; private float total; public int getBook_id() { return book_id; } public void setBook_id(int book_id) { this.book_id = book_id; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getBookname() { return bookname; } public void setBookname(String bookname) { this.bookname = bookname; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getPublisher() { return publisher; } public void setPublisher(String publisher) { this.publisher = publisher; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public String getPicture() { return picture; } public void setPicture(String picture) { this.picture = picture; } public int getQty() { return qty; } public void setQty(int qty) { this.qty = qty; } public float getTotal() { Map session=ActionContext.getContext().getSession(); List<Cart> list=(List<Cart>)session.get("cart_list"); int size=list.size(); total=0; if(size==1){ total=list.get(0).getPrice()*list.get(0).getNum(); session.put("total", total); return total; } for(int i=0;i<size;i++){ total=total+list.get(i).getPrice()*list.get(i).getNum(); } session.put("total", total); return total; } public void setTotal(float total) { this.total = total; } public String add(){ Map session=ActionContext.getContext().getSession(); List<Cart> list=(List<Cart>)session.get("cart_list"); Cart cart = new Cart(); cart.setBook_id(book_id); cart.setNum(num); cart.setBookname(bookname); System.out.println(bookname); cart.setAuthor(author); cart.setPublisher(publisher); cart.setIsbn(isbn); cart.setPrice((float)price); cart.setPicture(picture); cart.setQty(qty); if(list==null){ System.out.print("null"); list=new ArrayList<Cart>(); list.add(cart); } else if(search(list)!=-1){ int i=search(list); System.out.print("contains"); Cart cart2 = list.get(i); list.remove(i); cart2.setNum(cart2.getNum()+num); System.out.print(cart2.getNum()+num); list.add(cart2); } else{ System.out.print("add"); list.add(cart); } System.out.println(list.size()); session.put("cart_list", list); this.getTotal(); return "cart"; } public String edit(){ Map session=ActionContext.getContext().getSession(); List<Cart> list=(List<Cart>)session.get("cart_list"); int i=search(list); Cart cart2 = list.get(i); list.remove(i); cart2.setNum(num); list.add(cart2); session.put("cart_list", list); this.getTotal(); return "cart"; } public String del(){ Map session=ActionContext.getContext().getSession(); List<Cart> list=(List<Cart>)session.get("cart_list"); int i=search(list); list.remove(i); session.put("cart_list", list); this.getTotal(); return "cart"; } public int search(List<Cart> list){ int size=list.size(); if(size==1){ if(list.get(0).getBook_id()==book_id){ return 0; } } for(int i=0;i<size;i++){ if(list.get(i).getBook_id()==book_id){ return i; } } return -1; } }
这里是用ArrayList实现的购物车:
getTotal()计算购物车中图书的总价钱;
add()把图书添加进购物车;
edit()修改购物车中图书的数量;
del()删除购物车中的图书;
search(List<Cart> list)是我原创的,用于在购物车中判断特定id的图书是否存在。
如果需要完整源代码,可以与我联系。