tank2140896 2012-12-09 22:38
浏览 621
已采纳

购物车中只能添加一个商品,第二次添加就会把第一次给覆盖掉了,怎么办?

action中的代码如下:
[code="java"]
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
import ez.store.pojo.Book;
import ez.store.pojo.User;
import ez.store.service.UserService;
import ez.store.util.CartItem;
public class OrderCartItemAction extends ActionSupport implements SessionAware{
private UserService userService;
private Map session;
private CartItem ci;

public Map getSession() {
    return session;
}

public void setSession(Map session) {
    this.session = session;
}

public UserService getUserService() {
    return userService;
}

public void setUserService(UserService userService) {
    this.userService = userService;
}

// 用于将商品放到购物车里面
public String addBookToCart() {
    HttpServletRequest request = ServletActionContext.getRequest();
    Book book = (Book) session.get("book");
    int score = user.getScore();
    String bname = book.getBname();
    double price = book.getPrice();
    int amount = Integer.parseInt(request.getParameter("amount"));
    ci=new CartItem();
    Date date = new Date();
    Map map = new HashMap();
    ci.setBname(bname);
    ci.setPrice(price);
    ci.setAmount(amount);
    map.put(date,ci);
    session.put("list",map);
    return "success";
}

}
[/code]
然后就在jp页面接受"list"的值用c:if迭代,但是现在每次只能添加一个商品信息进购物车,且第二次添加的会把第一次添加的给覆盖掉。问题好像是因为每次调用这个action都会重新去new一次,但是就是不知道该如何解决?求指点。

  • 写回答

7条回答 默认 最新

  • chawei784533 2012-12-10 09:26
    关注

    List list = null;
    Object obj = session.get("list");
    if(obj != null){
    list = (List) obj;
    }else{
    list = new ArrayList();
    session.put("list",list);
    }
    //list.add 商品
    ......

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划