写一个小论坛的时候,用递归输出内容,把帖子放在了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();
%>
递归代码如下:
<%! 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();
%>
解决方案 »
- JSONObject
- csdn某出错页面,乱码问题产生原因?
- 关于JBOSS中间运行一段时间后访问起来就慢的问题
- MyEclipse打不开“.jsp”和“.html”,请高手解决
- TRANSACTION应该加入哪个包啊
- 在使用JB2005时,TOMCAT+JB的环境都已经建立好了,右键点击某个很简单的JSP调用"web run using xx.jsp",tomcat正常启动,但是却没有去执行
- 关于RMI的一个问题.
- 高分求助jbuilder8和weblogic7的详细配置文档。
- 无状态会话bean到底是什么意思!
- 请问使用126的邮箱给用户发邮件,为什么发不出去?
- 该怎样使用CXF中的sample啊?
- hibernate 主键
if(("").equals(strId.trim()) || strId == null){//