你的like定义在try快中了,出了try的区域,like就不可见了,你把like定义到try外面就可以了

解决方案 »

  1.   

    改成下面代码就可以了
    servlet中: 
    String like="";
    String[] c=request.getParameterValues("checkbox"); 
         try{ 
    for(int i=0;i <c.length;i++) 

    like=c[i]; 


            catch(Exception e) 
            {} 
            user.setLove(like); 
      

  2.   

    1 如楼上所说你的
    2 我看你的业务逻辑有问题,你的循环在里买,那like 岂不是只有最后一个了!
      

  3.   

    同意楼上的,LZ要注意函数的作用域问题还有从经验上说,尽量不要在for语句内部声明变量,不然如果循环次数很多的话系统开销巨大。
      

  4.   


    恩,仔细一看果然,索性直接等于了,也不用for了
    user.setLove(request.getParameterValues("checkbox"));  
      

  5.   

    servlet中:  
    String[] c=request.getParameterValues("checkbox");  
    String [] like=new String[c.length];
         try{  
    for(int i=0;i  <c.length;i++)  
    {  
    like[i]=c[i];  
    }  
    }  
            catch(Exception e)  
            {}  
            user.setLove(like);  
    刚楼主只是提出出错,,对于其要求的效果没有考虑进去,,要改也很简单啊
      

  6.   

    谢谢 非常感谢各位老师指教 本人刚入门学习 希望各位多多指点..
    呵呵 这个问题解决了 
    但是mysql的操作对象在写入这个数组时又出错了
    PreparedStatement pstmt=null;
    pstmt.setString(6,user.getLove());
    如果用setString这个方法的话与user.getLove()类型不匹配 
    PreparedStatement的其他方法涉及到类型转换 试了
    我转换成Object了 但是写入的是乱码
    还请各位帮忙解决