写一个小论坛的时候,用递归输出内容,把帖子放在了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();  
 %>

解决方案 »

  1.   

    怎么还在JSP里面写 java代码呢
    这样调试都不好调~~
      

  2.   

    如果你要分页 获取的信息就不是全部信息 应该获取此页面的信息还有就是用一句sql语句获取总记录数通过计算 得出总页数其他的还是一样 循环展示数据没点击第几页 传递两个参数 一个是页数 一个是 每页显示数量然后通过数据库的获取这个范围内的数据是中(页数-1)*每页数量+1 至 页数*每页数量