写一个小论坛的时候,用递归输出内容,把帖子放在了ArrayList里面,然后从容器中循环出来。可是要如何在递归中分页,就弄不懂了?希望高手指点,谢谢!
递归代码如下:
<%! private void tree(List<Article> articles,Connection conn,int pid) {
Statement stmt = DB.getStmt(conn);
String sql = "select * from article where pid ="+pid;
ResultSet rs = DB.getRs(stmt,sql);

try{
while(rs.next()){
Article article = new Article();
article.initArticle(rs);
articles.add(article);

tree(articles,conn,rs.getInt("id"));
}
}catch(SQLException e){e.printStackTrace();}
}%>
<%
String strId = request.getParameter("id");
if(strId == null || strId.trim().equals("")){//判断时“||”两边的表达式不可以互换,如果把后面的表达式换到前面,如果id为空值时,id.trim()就会出错
out.println("Error Parameter!");
return;
}
int id = 0;
try{
id = Integer.parseInt(strId);
}catch(NumberFormatException e){out.println("Error again!");return;}

Connection conn = DB.getConn();
Statement stmt = DB.getStmt(conn);
String sql = "select * from article where id ="+id;
ResultSet rs = DB.getRs(stmt,sql);
Article article = new Article();
if(rs.next()){
article.initArticle(rs);
}
List<Article> articles = new ArrayList<Article>();
articles.add(article);
tree(articles,conn,id);
DB.close(conn);
DB.close(stmt);
DB.close(rs);
%>循环代码如下:
<%for(Iterator<Article> it = articles.iterator();it.hasNext();) 
{ Article a = it.next(); 
 %>