首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

关于ArrayList的有关问题,

2013-11-29 
关于ArrayList的问题,,,郁闷了好久的一个问题,求大神帮忙看一下,不长的代码,,,文件一node类:package vopu

关于ArrayList的问题,,,
郁闷了好久的一个问题,求大神帮忙看一下,不长的代码,,,

文件一
node类:

package vo;
public class Node {
private String nodeId;  
    private String parentId;
    private String nodeName;
    
    public String getNodeId() {  
        return nodeId;  
    }  
 
    public void setNodeId(String nodeId) {  
        this.nodeId = nodeId;  
    }  
    
    public String getParentId() {  
        return parentId;  
    }  
 
    public void setParentId(String parentId) {  
        this.parentId = parentId;  
    }  
    
    public String getNodeName() {  
        return nodeName;  
    }  
 
    public void setNodeName(String nodeName) {  
        this.nodeName = nodeName;  
    }  
}
------------------------------------------------------
文件二
DaoTest类:

package dao;
import java.sql.*;  
import java.util.*;

import vo.Node;
public class DaoTest {
private Connection conn = null;
public void initConnection() throws Exception {  
Class.forName("com.mysql.jdbc.Driver");  
        conn = DriverManager.getConnection("jdbc:mysql://localhost/tree","root","mysqladmin");  
}
public  ArrayList<Node> getNodeInfo() throws Exception{  
ArrayList<Node> nodes = new ArrayList<Node>();
initConnection();
String sql = "select id,pid,name from t_tree"; 
Statement stat=conn.createStatement();
ResultSet rs = stat.executeQuery(sql);
while (rs.next()){  
            Node node = new Node();  
            //node.setHrefAddress(rs.getString("hrefAddress"));  
            node.setNodeId(rs.getString("id"));  
            node.setParentId(rs.getString("pid"));  
            node.setNodeName(rs.getString("name"));  
            nodes.add(node);  
        }  
closeConnection();
        
        return nodes;
    }
public void closeConnection() throws Exception{
    conn.close();
    }
}
---------------------------------------------------------
文件三
JSP中的代码:

<body>
    This is my JSP page. <br>
     <%
         DaoTest dt=new DaoTest();
         ArrayList<Node> nodes=dt.getNodeInfo();
         for(int i=0;i<=nodes.size();i++){
              Node node=(Node)nodes.get(i);
              out.print(node.getNodeId());
              out.print(node.getParentId());
              out.print(node.getNodeName());       
           }       
     %>
</body>
--------------------------------------------------------------
在浏览器中运行后出现的错误:
type Exception report

message An exception occurred processing JSP page /Mytree.jsp at line 33

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /Mytree.jsp at line 33

30:          DaoTest dt=new DaoTest();


31:          ArrayList nodes=dt.getNodeInfo();
32:          for(int i=0;i<=nodes.size();i++){
33:               Node node=(Node)nodes.get(i);
34:               out.print(node.getNodeId());
35:               out.print(node.getParentId());
36:               out.print(node.getNodeName());       
[解决办法]
for(int i=0;i<=nodes.size();i++){
              Node node=(Node)nodes.get(i);
              ... 
           }       

for 循环里面终止条件不对,导致数组下标越界。应改为:

for(int i=0;i<nodes.size();i++){
}

热点排行