HttpSession session=request.getSession(false);  高手们看看吧! 为什么 啊?

解决方案 »

  1.   

    写false .如果没有session,不会自动生成新的session,当然就返回null了.记得是这样,你可以查一下文档
      

  2.   

    public class CartItemsAction extends ActionSupport{
    private ShoppingBean bean=new ShoppingBean();//提交后数据都保存在beans中
    private CartItemsBean cartitems=new CartItemsBean();
    private HttpServletRequest request;
    public String cart()
    {
    HttpSession session=request.getSession(false); Map cart=(Map)session.getAttribute("cart");
    // 如果购物车不存在则创建
    if(cart==null)
    {
    cart=new HashMap();
    session.setAttribute("cart", cart);
    }
    //判断书籍是否在购物车中
    CartItemsBean cartItem=(CartItemsBean)cart.get(bean.getId());
    if(cartItem!=null)
    {
    cartItem.setQuantity(cartItem.getQuantity()+1);
    }
    else
    {
    cart.put(bean.getId(), new CartItemsBean(bean,1));
    }
    return SUCCESS;
    }红色地方报错顺便看下其余的地方有没有错误咯!! 呵呵
      

  3.   

    lz 你没有去获得request的对象,
    private HttpServletRequest request=ServletActionContext.getRequest();
      

  4.   

    为什么
       public class CartItemsAction extends ActionSupport{
    private ShoppingBean bean=new ShoppingBean();//提交后数据都保存在beans中
    private CartItemsBean cartitems=new CartItemsBean();
    private HttpServletRequest request=ServletActionContext.getRequest();
    public String cart()
    {
    HttpSession session=request.getSession();
    System.out.println(session);
    Map cart=(Map)session.getAttribute("cart");
    // 如果购物车不存在则创建
    if(cart==null)
    {
    cart=new HashMap();
    session.setAttribute("cart", cart);
    }
    //判断书籍是否在购物车中
    CartItemsBean cartItem=(CartItemsBean)cart.get(bean.getId());
    if(cartItem!=null)
    {
    cartItem.setQuantity(cartItem.getQuantity()+1);
    }
    else
    {
    cart.put(bean.getId(), new CartItemsBean(bean,1));
    }
    return SUCCESS;
    }
    为什么红色的地方还是报:java.lang.NullPointerException
      

  5.   

    真晕了。
    你想要使用request你可以通过:ServletActionContext.getRequest()获取
    或者实现ServletRequestAware
      

  6.   

    private HttpServletRequest request=ServletActionContext.getRequest(); 我这里获取的request 是这样的  为什么还要报空???
      

  7.   

    HttpSession session=request.getSession();是这句话报空!!
      

  8.   

    public class CartItemsAction extends ActionSupport{
    private ShoppingBean bean=new ShoppingBean();//提交后数据都保存在beans中
    private CartItemsBean cartitems=new CartItemsBean();
    private HttpServletRequest request=ServletActionContext.getRequest();
    public String cart()
    {
    System.out.println("--------------------------"+request);
    HttpSession session=request.getSession();
    ....
    --------------------------null
    2009-8-3 13:54:21 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet default threw exception
    java.lang.NullPointerException
    at com.action.CartItemsAction.cart(CartItemsAction.java:25)
    为什么会这样捏?  难道 获取request错了么?
      

  9.   

    当用户访问时才生产request,也就是说当访问cart()方法时才生成对应的request对象,你那个全局的request要么就是null,要么就是上一次访问的request,明白?
      

  10.   

    明白了  但是 怎么在Jsp页面输出对象的各个属性??  这是个Map 集合哦! 
       <s:itertor value="">
        .....
      </s:itertor>