新闻列表的分页查询java代码实现

时间:2021-12-01 06:52:56

本文实例为大家分享了新闻列表分页查询的java代码,供大家参考,具体内容如下

  1. package com.ibeifeng.test; 
  2. //创建新闻测试类 
  3. public class newTest { 
  4. private long id; 
  5. private String title; 
  6. private String content; 
  7. private String author; 
  8.   
  9. public newTest() { 
  10.   super(); 
  11.   
  12. public newTest(long id, String title, String content, String author) { 
  13.   this.id = id; 
  14.   this.title = title; 
  15.   this.content = content; 
  16.   this.author = author; 
  17.   
  18. public long getId() { 
  19.   return id; 
  20.   
  21. public void setId(long id) { 
  22.   this.id = id; 
  23.   
  24. public String getTitle() { 
  25.   return title; 
  26.   
  27. public void setTitle(String title) { 
  28.   this.title = title; 
  29.   
  30. public String getContent() { 
  31.   return content; 
  32.   
  33. public void setContent(String content) { 
  34.   this.content = content; 
  35.   
  36. public String getAuthor() { 
  37.   return author; 
  38.   
  39. public void setAuthor(String author) { 
  40.   this.author = author; 
  41.   
  42. @Override 
  43. public String toString() { 
  44.   return "newTest [id=" + id + ", title=" + title + ", content=" + content 
  45.       + ", author=" + author + "]"
  46.   
  47.   
  48. 2.开始查询 
  49. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
  50. <%@ page import="com.ibeifeng.test.newTest"%> 
  51. <% 
  52.   String path = request.getContextPath(); 
  53.   String basePath = request.getScheme() + "://" 
  54.       + request.getServerName() + ":" + request.getServerPort() 
  55.       + path + "/"
  56. %> 
  57. <% 
  58.   List<newTest> list = new ArrayList<newTest>(107);//设定新闻行数为107行 
  59.   for (int i = 1; i <= 107; i++) {//list中添加新闻 
  60.     newTest news = new newTest(0L + i, i + "里约奥运""马龙获得金牌-世界乒坛第五位男子“大满贯”得主""福音"); 
  61.   
  62.     list.add(news); 
  63.   }//end of for...添加107条数据到集合中 
  64.     //int pageIndex=10; 
  65.   int iTitleIndex = list.size();//获取集合下表标 
  66.   int iTitlePages = iTitleIndex / 10 
  67.       + (iTitleIndex % 10 == 0 ? 0 : 1);//获取页数的总数 
  68.   int ipage = 4;//开始的页数 
  69.     
  70.   String str = request.getParameter("page"); 
  71.   if (str != null && !str.trim().equals("")) { 
  72.     int newPage = Integer.valueOf(str); 
  73.   
  74.     if (newPage < 1) { 
  75.       ipage = 1; 
  76.     } else if (newPage > iTitlePages) { 
  77.       ipage = iTitlePages; 
  78.     } else { 
  79.       ipage = newPage; 
  80.     } 
  81.   } 
  82.   //创建一个新的集合(大小每个页面显示的新闻总数) 将107条数据分别存储到其中 
  83.   List<newTest> listPage = new ArrayList<newTest>(10); 
  84.   int ipa = 10;//获取循环体的循环次数//最后一页只有七条数据 
  85.   if (ipage == iTitlePages) { //当当前页数为最后一页时,剩余几行则循环体之执行剩余的行的数次, 
  86.     ipa = list.size() - (iTitlePages - 1) * 10; 
  87.   } 
  88.   for (int i = 0; i < ipa; i++) { //i=0;获取前十个数据 第一次循环时ipage=4 
  89.     newTest arr = list.get(i + (ipage - 1) * 10); 
  90.     listPage.add(arr); 
  91.   } 
  92. %> 
  93. <html> 
  94. <body> 
  95.   <table> 
  96.     <tr> 
  97.       <th>标题</th> 
  98.       <td>作者</td> 
  99.       <td>摘要</td> 
  100.     </tr> 
  101.     <% 
  102.       for (int i = 0; i < listPage.size(); i++) { //java代码需要用<% %》保护起来否则会被当做web语句执行 
  103.         newTest temp = listPage.get(i); 
  104.     %> 
  105.     <tr> 
  106.       <td><%=temp.getTitle()%></td> 
  107.       <td><%=temp.getAuthor()%></td> 
  108.       <td><%=temp.getContent()%></td> 
  109.     </tr> 
  110.     <% 
  111.       }//end of for... 
  112.     %> 
  113.   </table> 
  114.   
  115.   <% 
  116.     boolean bFirst = ipage == 1; 
  117.     boolean bLast = ipage == iTitlePages ; 
  118.   %> 
  119.   
  120.   <% 
  121.     if (!bFirst) { 
  122.   %> 
  123.   <a href="test.jsp?page=<%=ipage - 1%>&totopage=11">上一页</a> 
  124.   <% 
  125.     } 
  126.   %> 
  127.   &nbsp;&nbsp;&nbsp; 
  128.   <!-- 当跳转到第一页时不再显示“上一页”提交对话框,下同 --> 
  129.   <% 
  130.     if (!bLast) { 
  131.   %> 
  132.   <a href="test.jsp?page=<%=ipage + 1%>&totopage=11">下一页</a> 
  133.   <% 
  134.     } 
  135.   %>第<%=ipage%>页&nbsp;&nbsp;&nbsp;共<%=iTitlePages%>页 
  136. </body> 
  137. </html> 
 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。