<% 
   sql = "SELECT * from table";
    resultSet = stmt.executeQuery(sql);
    String confirm = "";
    while (resultSet.next()) {
       if(resultSet.getString(9) != null){
       confirm = resultSet.getString(9);
        }
        String s[]=confirm.split(",");
        purser_prepare_content = parseChinese(resultSet.getString(10));
%>
   <table width="778" border="0" cellspacing="1" cellpadding="0" bgcolor="#666699" align="center">
   <tr bgcolor="#eeeeee">
    <td width="50" rowspan="2" align="center">组<br>员<br>检<br>查</td>
    <td width="100" height="40" align="center">证件装具</td>
    <td align="center">检查各类证件及装具</td>
    <td align="center"><input name="confirm" type="checkbox" id="confirm" value="1" <%=s[0].trim().equals("1")?"checked":""%>/></td>
    <td rowspan="9" align="center"><%=purser_prepare_content==null?"":purser_prepare_content%></td>
  </tr>
  <tr bgcolor="#eeeeee">
    <td width="100" height="40" align="center">仪容仪表</td>
    <td align="center">检查仪容仪表规范执行情况</td>   
    <td align="center"><input name="confirm" type="checkbox" id="confirm" value="2" <%=s[1].trim().equals("2")?"checked":""%>/></td>    
  </tr>
  </table>
<%
}
%>麻烦高手帮忙解决下啊,我这里怎么报这个错啊,查询出来数据是有的
java.lang.ArrayIndexOutOfBoundsException: 4

解决方案 »

  1.   

    注意s.length
    你一共4条数据..
    你取s[4] 这样是第5条...就出这个错了.
      

  2.   

    s[] 数组判断一下长度(length)  遍历数组,记住要去lenght-1个元素。
      

  3.   

    String confirm = ""; 
        while (resultSet.next()) { 
          if(resultSet.getString(9) != null){ 
          confirm = resultSet.getString(9); 
          } 
            String s[]=confirm.split(","); 
    ---->如果 resultSet.getString(9) 不为 null) 也依然会执行以下代码,只不过confim="";所以当为空时String s[]="".split(",");
     --><%=s[0].trim().equals("1")?" 就越界,
    所以楼主应该做个else判断如:String confirm = ""; 
        while (resultSet.next()) { 
          if(resultSet.getString(9) != null){ 
          confirm = resultSet.getString(9); 
          } else{
           confim= .... 或String s[]=.... <!----保证后面从数组取值不越界-->
          }