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 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试