编程 java 关于购物车

[复制链接]
查看11 | 回复1 | 2009-9-28 16:32:55 | 显示全部楼层 |阅读模式
将session中的商品定义为对象放入ArrayList中修改了购物车内容后把ArrayList.size()赋值到现在是0的位置如:购物车添加物品List productList = new ArrayList();Product product1 = new Product();productList.add(product1);...Product productN = new Product();productList.add(productN);session.setAttribute("product", productList);页面可以写List productList = (List)session.getAttribute("product");把productList.size()放到个数的位置
回复

使用道具 举报

千问 | 2009-9-28 16:32:55 | 显示全部楼层
点击数量进入购物车页面,这个应该好做吧,跳动一个Action转发到购物车页面下面是我的图书购物车(自己写的)package com.jc.ts.services;import java.math.BigDecimal;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import com.jc.ts.entity.BookCar;import com.jc.ts.entity.BookInfo;/** * 该类提供购物车的操作 * */public class CartItemsService {private Map itemMap=null;//购物车Map集合private Collection[B]items;//购物车项public CartItemsService(){ itemMap=new HashMap();}public Collection[B] getItems() { return items;}public void setItems(Collection[B] items) { this.items = items;}public Map getItemMap() { return itemMap;}public void setItemMap(Map itemMap) { this.itemMap = itemMap;}publicint getBookCarSize(){ return itemMap.size();}public boolean containById(String bookid){ return itemMap.containsKey(bookid);}public void addBookCarItems(BookInfo bookInfo){ if(bookInfo!=null) {
BookCar bookCar=(BookCar)itemMap.get(bookInfo.getBid());
if(bookCar==null)
{
bookCar=new BookCar();
bookCar.setBookinfo(bookInfo);
bookCar.increaseQuantity();
itemMap.put(bookInfo.getBid(),bookCar);
items=itemMap.values();
}else {
bookCar.increaseQuantity(); } }}public BookInfo removeCarItem(String bookid){ BookCar bookCar=itemMap.remove(bookid); if(bookCar==null) {
return null; } items=itemMap.values(); return bookCar.getBookinfo();}public BigDecimal getBookCarTotal()//获得总金额{ BigDecimal carTotal=new BigDecimal("0.00"); Iterator[B] iterator=this.getAllCartItems(); while(iterator.hasNext()) {
BookCar bookCar=iterator.next();
BigDecimal carPrice=bookCar.getBookinfo().getBprice();
BigDecimal quantity=new BigDecimal(String.valueOf(bookCar.getQuantity()));
carTotal=carTotal.add(carPrice.multiply(quantity)); } return carTotal;}public Iterator[B] getAllCartItems(){ return itemMap.values().iterator();}public void increaseQuantityById(String bookid){ BookCar bookCar=itemMap.get(bookid); if(bookCar!=null) {
bookCar.increaseQuantity(); }}public void setQuantityById(String bookid,int quantity)//根据图书ID增加数量{ BookCar bookCar=itemMap.get(bookid); if(bookCar!=null) {
bookCar.setQuantity(quantity); }}public void clear(){ itemMap.clear();}} 修改后传入这个方法就可以了setQuantityById() ★★★ 注意购物车一定要用Map 不能用List或ArrayList因为购物车是顾客频繁操作的功能Map在取值或删除值的效率比List或ArrayList要高的多它基本不需要时间,而List或ArrayList还要遍历。。。。。。希望对你有帮助!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行