一个购物车的部分代码,看不大懂。
HttpSession和IndexForm这2个类是在哪个库里边的,我怎么找不到
IndexForm inf = (IndexForm) form; 请问这是什么意思?特别是这个括号是什么用法?我翻了很久的java书也不知道
学jsp大概需要把java学到什么程度,我只把java的语法和部分常用的类和方法了解了一下
//这一步很简单,就是获取session.用于我们后来存储购物车的内容.   
       HttpSession session = request.getSession();   
      //这一步就是从session中获取购物车.   
Vector car = (Vector) session.getAttribute("car");   
      //这是我首页面的Form表单   
IndexForm inf = (IndexForm) form;   
      //product_do是我对于商品处理的一个类,其中包括安商品编号查找商品所有信息.   
product_do pdo = new product_do();   
      //这就是我们得到的从首页面传过来的选定的商品编号的数组   
String[] choice = inf.getChoice();   
      //下面判断这个数组是否为空.   
   if (choice.length == 0) {   
   //如果为空,说明没有选定任何商品,则跳回首页面   
return mapping.getInputForward();   
   } else {   
          //如果不为空,遍历这个数组.   
 for (int i = 0; i < choice.length; i++) {   
                            //声明一个布尔型变量,用于以后对于购买重复商品则数量叠加的控制.   
  boolean f = false;   
                            //安数组中的现在下标位置的值(也就是商品编号),来获得这个商品的所有信息,并存入一个商品的javabean.   
  productBean pb = pdo.showproductByid(Integer   
    .parseInt(choice[i]));   
                            //创建一个新的购物车bean,并向其存入上面得到的商品bean里面的商品信息.   
  carBean cb = new carBean();   
  cb.setProduct_id(pb.getProduct_id());   
  cb.setProduct_name(pb.getProduct_name());   
  cb.setProduct_price(pb.getProduct_price());   
  cb.setProduct_num(1);   
  cb.setProduct_totalmoney();   
                            //这个判断是检查上面得到的购物车car是否为空   
  if (car==null) {   
  //如果为空的话,创建一个新的集合Vector,并将上面创建的购物车carBean存放进来.   
   car = new Vector();   
   car.addElement(cb);   
  } else {   
  //如果不为空的话,遍历session中得到的购物车car.   
   for (int j = 0; j < car.size(); j++) {   
   //如果当前商品在购物车中已经存在的话,就给它的数量加一,并且重新计算它的总价格,然后重新放回到car的原位置   
    carBean cb2 = (carBean) car.elementAt(j);   
    if (cb2.getProduct_id() == cb.getProduct_id()) {   
     cb2.setProduct_num(cb2.getProduct_num() + 1);   
     cb2.setProduct_totalmoney();   
     car.setElementAt(cb2, j);   
     f = true;   
    }   
   }   
        //购物车中没有当前商品时,将其添加到购物车中   
   if (f == false) {   
    car.addElement(cb);   
   }   
  }   
 }   
  
}   
//将购物车car放入session中,然后跳转到查看购物车页面.   
session.setAttribute("car", car);   
return mapping.findForward("tocar");  

解决方案 »

  1.   

    代码贴完整点
    HttpSession和IndexForm应该是程序包里面的类吧
    IndexForm inf = (IndexForm) form;//类型转换
      

  2.   

    IndexForm inf = (IndexForm) form 上面说了是页面的Form表单,(IndexForm) 是转为Struts的Form表单。 学习JAVA要把基础学好,常用接口,常用类,工具类都要知道,然后就是实践的过程了。
      

  3.   

    使用struts当页面提交时,struts控制层将会把页面的所有元素封装成 struts-config配置的form对象,实际上已经是IndexForm了,但是由于execute方法是IndexAction继承超类Action中的方法(重载),故该方法是用了超类中的对象类型,所以在IndexAction实例中必须显式的转化:IndexForm inf = (IndexForm) form 这部分在接口开发及使用时经常使用,请参考。
      

  4.   

    HttpSession 就是平常说的session
      是用struts吗?IndexForm是一个继承ActionForm的类,
      你学习java的时间太短了, 基础至少一年
      

  5.   

       
     建议恶补 java