posts - 0, comments - 2, trackbacks - 0, articles - 4

Java+JSP分页

Posted on 2008-05-06 20:08 飞雪无情 阅读(1855) 评论(2)  编辑  收藏 所属分类: JAVA

已经快夜里一点半了。。可我还是想写点东西。与大家分享我的快乐。。

经过了近六个小时的努力。我终于编写好了一个万能分页函数。。

大家都知道单纯的在JSP页面中分页是很容易的。可是这并不能实现代码的可复用

也不能真正体现MVC框架的优点。反而更容易造成的问题是代码的累赘。

比如你还想在其他页面分页。你只要复制这些代码过去就OK。

这在一些小的网站还勉强可以。可是一些大的工程有很多要分页的地方。

所以代码的可复用性就很重要了。单独的调用一个函数要比一遍遍的复制

代码要省事的多。所以最后我采用编写javaBean前台JSP调用的

方式(即java+JSP模式)实现万能分页。通过ArrayList对象返回可供调用的

对象列(都存到ArrayList对象里面了)。。

分享代码如下(仅供参考):

 1public ArrayList SplitPage(String sql,int num,int page)//万能分页函数
 2 //sql代表sql语句,num代表一页显示的个数,page代表当前显示页
 3 {    
 4  try
 5  {
 6   PreparedStatement stmt;//SQL对象
 7   Connection conn;//数据库连接对象
 8   ResultSet rs;//记录集
 9   int i=0;  //计数器
10   int rownum;//总记录数
11   int pagenum;//总页数
12   ArrayList<NEWS> list=new ArrayList<NEWS>();
13   conn=DB_Conn();
14   //执行SQL语句
15   stmt=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
16   rs=stmt.executeQuery();
17   rs.last();//滚动到最后记录
18   rownum=rs.getRow();//获取总记录数
19   pagenum=(rownum+num-1)/num;//计算出总页数
20   if(page>pagenum) page=pagenum;
21   if(page<1)page=1;
22   if(pagenum>0)
23   {
24    rs.absolute((page-1)*num+1);
25    i=0;
26    while(i<num && !rs.isAfterLast())
27    {
28     NEWS  news=new NEWS();//定义新闻对象数组
29     news.setId(rs.getInt("ID"));//存储ID 下面类似
30     news.setTitle(rs.getString("TITLE"));
31     news.setConment(rs.getString("CONMENT"));
32     news.setData(rs.getString("DATA"));
33     news.setAuthor(rs.getString("AUTHOR"));
34     news.setSource(rs.getString("SOURCE"));
35     news.setPage(page);
36     news.setPagenum(pagenum);
37     rs.next();
38     i++;
39     list.add(news);//添加到LIST组里面
40    }

41    
42   }

43   
44   return list;
45  }

46  catch(Exception e)
47  {
48   e.getMessage();
49   return null;
50  }

51 }

52
53

Feedback

# re: Java+JSP分页  回复  更多评论   

2008-11-19 15:10 by 游客
呵呵,不能说是万能,充其量算是一个分页方法。

# re: Java+JSP分页  回复  更多评论   

2013-10-12 17:16 by kiwi
没有关闭资源

只有注册用户登录后才能发表评论。


网站导航: