编程 java 关于购物车

我想在我的每一页的页头 放一个 a标签,来检测显示购物车中具体的商品数量,点击数量进入购物车页面,还有在修改了购物车的内容之后,a标签的显示数据要更新,请问怎么实现,我用的是,Struts2+Hibernate3.5+Spring2.5
加分了啊,我就想解决!!希望高手指教!!!

点击数量进入购物车页面,这个应该好做吧,跳动一个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<String,BookCar> itemMap=null;//购物车Map集合
private Collection<BookCar> items;//购物车项
public CartItemsService()
{
itemMap=new HashMap<String ,BookCar>();
}
public Collection<BookCar> getItems() {
return items;
}
public void setItems(Collection<BookCar> items) {
this.items = items;
}
public Map<String, BookCar> getItemMap() {
return itemMap;
}
public void setItemMap(Map<String, BookCar> itemMap) {
this.itemMap = itemMap;
}
public int 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<BookCar> 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<BookCar> 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还要遍历。。。。。。
希望对你有帮助!!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-04-18
将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()放到个数的位置本回答被提问者采纳

最近老师叫我们用java web 搞一个购物车,但我的思路很乱,谁能帮我理 ...
1)首先你要考虑你要做的购物车涉及到哪些人员使用,这样你可以定出使用人员,譬如管理人员他们负责发布产品,而另一类人群就是购买者。2)第二你要考虑购物车都会涉及到哪些功能,如产品发布,产品购买,产品结算,报表等等,把功能拆分细分至模块。3)第三你要考虑各个功能的规则都是怎么样的,比如产品...

达内java的购物车商品 不能重复添加 的代码。
在购物车中写:购物车一般放到session域中。其中有商品小计,有商品总计的一些求和计算。我记得用Map来弄的。 在购物车中添加map集合。根据放到购物车中的key来判断在map中是否存在,如果存在那就在原有商品上+1,如果不存在,那么就可以添加商品到购物车。

我在用java做购物车,问题是我的购物车类变量在servelt中重新声明之...
你可以定义一个全局的静态的Map用于做购物车,根据用户ID或者IP之类的做为键存放物品 (list),如果需要统计购物车有多少 根据key去取得购物车LIST即可

java购物车 添加相同商品时怎么自动累加
实现方法就是定义一个购物车的map,商品id作为key,商品价格作为value,每次添加购物车,判断如果是相同的key,那么就累加value的值。import java.util.Map;import java.util.HashMap;public class MapText { private Object k ;Map<Object, Double> map = new HashMap<Object, Double>();private D...

java 如何编写购物车
\/\/ 购物车为空 if (cart == null) { cart = new HashMap();} FoodModel fd = new FoodModel(conn);FoodBean food = fd.findFoodById(foodID);\/\/ 判断购物车是否放东西(第一次点餐)if (cart.isEmpty()) { CartItemBean cartBean = new CartItemBean(food, 1);cart.put(foodID, ...

(java WEB)谁能告诉我在大型购物网站中使用什么技术实现购物车的,在线...
n 基于cookie的购物车要求用户浏览器必须支持并设置为启用cookie,否则购物车则失效;n 存在着关于cookie侵犯访问者隐私权的争论,因此有些用户会禁止本机的cookie功能。2. session session是实现购物车的另一种方法。session提供了可以保存和跟踪用户的状态信息的功能,使当前用户在session中定义的变量...

JavaWeb开发中,怎么根据用户来实现单个的购物车,小白入门,请指教。能附...
productID,然后userid,就是买家的id,然后PublishID,视为卖家id,其他的数据从product表里面读,避免了重复存。2、如果单纯的起步学习,我还记得我小时候,老师讲用session,用户进入系统后如果要登录就用用户id去存session,不登录就随即生成一个id存session,购物车就根据用户id读session数据。

Java 如何实现类似购物车功能
1.单纯有cookie实现购物车,这样的购物车不是很理想,设想一下,如果客户端的浏览器把cookie给禁用了,这种方法就会在这里流产...2.session中保存购物车的信息,这个只是在一个会话中可用,如果用户没有登录,或者说登录了以后,添加购物车,在关闭浏览器或者登出后,之前所添加的购物车通通都流产啦......

此段JAVA servelet代码 清空购物车哪里有问题?
很简单,在else if(action.equals("CLEAR")){\/\/清空购物车 逻辑里边,加上session.setAttribute("shopping_cart",cart);此时的cart 里边已经没有元素。 貌似这句代码里边被注解了。

用JAVA+SERVLET+JAVABEAN写购物车代码
写一个购物车的bean,里边有产品和数量 public class CarProduct { private XXX XXX;private int count;public Book getXXX() { return XXX;} public void setXXX(XXX XXX) { this.XXX= XXX;} public int getCount() { return count;} public void setCount(int count) { this.count = ...

相似回答