我写了一个jsp页面  是通过复选框来删除  可以选择多个一起删除,但是我是可以删除 但是代码的第8行总是报错 不知道怎么回事啊! 数据库里面又删除了信息
   代码如下
<%@ page language="java" import="java.util.*,dao.*" pageEncoding="GBK"%>    1
<%                      2
  request.setCharacterEncoding("GBK");                           3  
String[] name=request.getParameterValues("check");         4
for(int i=0;i<=name.length;i++){        5
     //out.println(name[i]);     6
     PollDao pollDao=new PollDao();     7
    int num= pollDao.detaleById(Integer.parseInt(name[i]));  8
    if(num==1){
      out.println("<script>location='index.jsp'</script>");
    }
  }
%>
  请高手解答我一下 谢谢

解决方案 »

  1.   

    org.apache.jasper.JasperException: An exception occurred processing JSP page /dodelete.jsp at line 85:   for(int i=0;i<=name.length;i++){
    6:      //out.println(name[i]);
    7:      PollDao pollDao=new PollDao();
    8:     int num= pollDao.detaleById(Integer.parseInt(name[i]));
    9:     if(num==1){
    10:       out.println("<script>location='index.jsp'</script>");
    11:     }就是上面这些错啊   说是第八行 但是数据库里面已经删除了啊!
      

  2.   

    严重: Servlet.service() for servlet jsp threw exception
    java.lang.ArrayIndexOutOfBoundsException: 1  
       有个这个!
      

  3.   

    第一反应可能是你删的太快了。。你把你的错误信息贴出来看看
    还有,你可以将这些选中的ID一起传给后台啊,然后通过组织字符串的形式,将所有选中的ID都组织到sql语句中,比如说,delete from tableName where id in (XX,XX,XX,XX,…,XX),这些XX就是你选中的ID值,根据的键名你也可以换的。这样就可以一次性全部删掉了。而且跟数据库交互次数是一次,你所写的这个,是选中一个交互一次,选中多个就是交互多次。
      

  4.   

    数组越界了,,你这个for(int i=0;i<=name.length;i++){语句有问题,应该写成
    for(int i=0;i<name.length;i++){这个等于不要,,应该是执行到最后一个删除的时候出的问题,越界了
      

  5.   

    你写的这个sql语句我知道 但是我数据库的数据是int  但是我获得表单的数据是String的数据啊   你说的这种我不太会  真心求你交我!
      

  6.   


    你表单提交是String型没关系啊,只是在你的后台处理代码,比如说servlet中组织成一句SQL,然后再交给DAO处理就行了啊,DAO里面只是去执行下这句sql,这句sql语句传过去本来就是String型的。
      

  7.   

    额,我之前是用ajax写的。思路是这样子:你选中了这么多Id么,在前台组成一个字符串(id1,id2,id3,……,idN),就像你遍历这个name数组一样,这个你肯定会的。然后,再字符串相加啊。加完之后就querySQL。你只是在遍历的时候每次都去操作数据库。例子没有啊,手头代码木有,,额。。