读书人

关于ArrayList的有关问题

发布时间: 2013-11-29 00:21:24 作者: rapoo

关于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++){
}

读书人网 >J2EE开发

热点推荐