欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-13 13:14:09
本文实例为大家分享了新闻列表分页查询的java代码,供大家参考,具体内容如下 package com.ibeifeng.test; //创建新闻测试类 pub...

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

package com.ibeifeng.test;
//创建新闻测试类
public class newtest {
private long id;
private string title;
private string content;
private string author;
 
public newtest() {
  super();
}
 
public newtest(long id, string title, string content, string author) {
  this.id = id;
  this.title = title;
  this.content = content;
  this.author = author;
}
 
public long getid() {
  return id;
}
 
public void setid(long id) {
  this.id = id;
}
 
public string gettitle() {
  return title;
}
 
public void settitle(string title) {
  this.title = title;
}
 
public string getcontent() {
  return content;
}
 
public void setcontent(string content) {
  this.content = content;
}
 
public string getauthor() {
  return author;
}
 
public void setauthor(string author) {
  this.author = author;
}
 
@override
public string tostring() {
  return "newtest [id=" + id + ", title=" + title + ", content=" + content
      + ", author=" + author + "]";
}
 
 
}
2.开始查询
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<%@ page import="com.ibeifeng.test.newtest"%>
<%
  string path = request.getcontextpath();
  string basepath = request.getscheme() + "://"
      + request.getservername() + ":" + request.getserverport()
      + path + "/";
%>
<%
  list<newtest> list = new arraylist<newtest>(107);//设定新闻行数为107行
  for (int i = 1; i <= 107; i++) {//list中添加新闻
    newtest news = new newtest(0l + i, i + "里约奥运", "马龙获得金牌-世界乒坛第五位男子“大满贯”得主", "福音");
 
    list.add(news);
  }//end of for...添加107条数据到集合中
    //int pageindex=10;
  int ititleindex = list.size();//获取集合下表标
  int ititlepages = ititleindex / 10
      + (ititleindex % 10 == 0 ? 0 : 1);//获取页数的总数
  int ipage = 4;//开始的页数
   
  string str = request.getparameter("page");
  if (str != null && !str.trim().equals("")) {
    int newpage = integer.valueof(str);
 
    if (newpage < 1) {
      ipage = 1;
    } else if (newpage > ititlepages) {
      ipage = ititlepages;
    } else {
      ipage = newpage;
    }
  }
  //创建一个新的集合(大小每个页面显示的新闻总数) 将107条数据分别存储到其中 
  list<newtest> listpage = new arraylist<newtest>(10);
  int ipa = 10;//获取循环体的循环次数//最后一页只有七条数据
  if (ipage == ititlepages) { //当当前页数为最后一页时,剩余几行则循环体之执行剩余的行的数次,
    ipa = list.size() - (ititlepages - 1) * 10;
  }
  for (int i = 0; i < ipa; i++) { //i=0;获取前十个数据 第一次循环时ipage=4
    newtest arr = list.get(i + (ipage - 1) * 10);
    listpage.add(arr);
  }
%>
<html>
<body>
  <table>
    <tr>
      <th>标题</th>
      <td>作者</td>
      <td>摘要</td>
    </tr>
    <%
      for (int i = 0; i < listpage.size(); i++) { //java代码需要用<% %》保护起来否则会被当做web语句执行
        newtest temp = listpage.get(i);
    %>
    <tr>
      <td><%=temp.gettitle()%></td>
      <td><%=temp.getauthor()%></td>
      <td><%=temp.getcontent()%></td>
    </tr>
    <%
      }//end of for...
    %>
  </table>
 
  <%
    boolean bfirst = ipage == 1;
    boolean blast = ipage == ititlepages ;
  %>
 
  <%
    if (!bfirst) {
  %>
  <a href="test.jsp?page=<%=ipage - 1%>&totopage=11">上一页</a>
  <%
    }
  %>
     
  <!-- 当跳转到第一页时不再显示“上一页”提交对话框,下同 -->
  <%
    if (!blast) {
  %>
  <a href="test.jsp?page=<%=ipage + 1%>&totopage=11">下一页</a>
  <%
    }
  %>第<%=ipage%>页   共<%=ititlepages%>页
</body>
</html>

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