java分页代码思想_java分页代码

packageexamples;/** @(#)StringPager.java 1.00 2004-10-10

*

* Copyright 2004 . All rights reserved.

* PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*//*** StringPager, 字符串分页.

*

*@authorxxxxxx

*@version1.00 2004-10-10*/publicclassStringPager {/**当前页码数*/privateintcurrentPage=1;/**需要分页的长字符串*/privateString text;/**每页显示字符数, 默认为 200*/privateintsizePerPage=200;/**总页数*/privateinttotalPage;publicStringPager() {}/*** 返回当前页的字符串.

*@return*/publicString getCurrentPagedText() {try{if(getCurrentPage()

getCurrentPage()*getSizePerPage());

}elseif(getTotalPage()>0) {returngetText().substring((getCurrentPage()-1)*getSizePerPage());

}

}catch(Exception e) {

e.printStackTrace();

}returnnull;

}/***@returnReturns the 当前页码数.*/publicintgetCurrentPage() {if(currentPage<=0) currentPage=1;returncurrentPage;

}/*** 设置当前页码, 从 1 开始.

*

*@paramcurrentPage

* The 当前页码数 to set.*/publicvoidsetCurrentPage(intcurrentPage) {if(currentPage<=0) {

currentPage=1;

}this.currentPage=currentPage;

}/***@returnReturns the 总页码数, 如果没有数据, 就返回 1.*/publicintgetTotalPage() {if(getText()==null) totalPage=0;

totalPage=(int) Math.ceil(1.0*getText().length()/getSizePerPage());//总页面数if(totalPage==0)

totalPage=1;returntotalPage;

}/***@paramtotalPage

* The totalPage to set.*/publicvoidsetTotalPage(inttotalPage) {this.totalPage=totalPage;

}publicstaticvoidmain(String[] args) {

StringPager pager=newStringPager();

pager.setSizePerPage(5);

pager.setText("12345678901");

pager.setCurrentPage(2);

System.out.println(pager.getTotalPage());

System.out.println(pager.getCurrentPagedText());

}/***@returnReturns the 每页显示字符数.*/publicintgetSizePerPage() {returnsizePerPage;

}/***@paramsizePerPage

* The 每页显示字符数 to set.*/publicvoidsetSizePerPage(intsizePerPage) {this.sizePerPage=sizePerPage;

}/***@returnReturns the 需要分页的长字符串.*/publicString getText() {returntext;

}/***@paramtext

* The 需要分页的长字符串 to set.*/publicvoidsetText(String text) {this.text=text;

}

}

document.PageForm.submit();return;

}

function gotoPage(pagenum){

document.PageForm.jumpPage.value=pagenum;

document.PageForm.submit();return;

}

pager.setText("12345678wfasdfae3fgsffd34235534634gfsfd65sfgssaeweasdfa901");//需要分页的长文本pager.setSizePerPage(5);//每页显示字符数intcurPage;//当前是第几页intmaxPage;//一共有多少页curPage=1;//当前页maxPage=pager.getTotalPage();

String jumpPage=(String)request.getParameter("jumpPage");if(jumpPage!=null&&!jumpPage.equals("")){

curPage=Integer.parseInt(jumpPage);

}

pager.setCurrentPage(curPage);

out.println("第"+curPage+"页
");

out.println(pager.getCurrentPagedText());//当前页的字符串%>

每页字

第页

共页首页)">上一页)">下一页)">尾页转到第>>页

第二种方法:

packagecom.accp.Bean;importjava.util.*;publicclassStringPager {/**当前页码数*/privateintcurrentPage=1;/**每页显示行数, 默认为 200*/privateintsizePerPage=5;/**总页数*/privateinttotalPage;/**需要分页的长字符串*/privateList topicSelect;publicStringPager() {

}/*** 返回当前页的文本

*

*@return*/publicList getCurrentPagedText() {try{if(getCurrentPage()

(getCurrentPage()-1)*getSizePerPage(),getCurrentPage()*getSizePerPage());

}elseif(getTotalPage()>0) {returngetTopicSelect().subList((getCurrentPage()-1)*getSizePerPage(),getTopicSelect().size());

}

}catch(Exception e) {

e.printStackTrace();

}returnnull;

}/***@returnReturns the 当前页码数.*/publicintgetCurrentPage() {if(currentPage<=0)

currentPage=1;returncurrentPage;

}/*** 设置当前页码, 从 1 开始.

*

*@paramcurrentPage

*            The 当前页码数 to set.*/publicvoidsetCurrentPage(intcurrentPage) {if(currentPage<=0) {

currentPage=1;

}this.currentPage=currentPage;

}/***@returnReturns the 总页码数, 如果没有数据, 就返回 1.*/publicintgetTotalPage() {if(getTopicSelect()==null)

totalPage=0;

totalPage=(int) Math.ceil(1.0*getTopicSelect().size()/getSizePerPage());//总页面数if(totalPage==0)

totalPage=1;returntotalPage;

}/***@paramtotalPage

*            The totalPage to set.*/publicvoidsetTotalPage(inttotalPage) {this.totalPage=totalPage;

}/***@returnReturns the 每页显示行数.*/publicintgetSizePerPage() {returnsizePerPage;

}/***@paramsizePerPage

*            The 每页显示行数to set.*/publicvoidsetSizePerPage(intsizePerPage) {this.sizePerPage=sizePerPage;

}/***@returnReturns the 需要分页的文本.*/publicList getTopicSelect() {returntopicSelect;

}publicvoidsetTopicSelect(List topicSelect) {this.topicSelect=topicSelect;

}

}

jsp代码

A{text-decoration:none;}

A:hover{color:blue}

Insert title here

TopicDao dao=newTopicDao();

List lst=dao.selectAll();

pager.setTopicSelect(lst);//需要分页的文本pager.setSizePerPage(5);//每页显示行数intcurPage;//当前是第几页intmaxPage;//一共有多少页curPage=1;//当前页maxPage=pager.getTotalPage();

String jumpPage=(String)request.getParameter("jumpPage");if(jumpPage!=null&&!jumpPage.equals("")){

curPage=Integer.parseInt(jumpPage);

}

pager.setCurrentPage(curPage);%>

欢迎进入帖子管理页面

每页条

第页

共页

out.print("首页 上一页");

}else{%>首页)">上一页

out.print("下一页 尾页");

}else{%>)">下一页)">尾页转到第>>页

序号标题内容积分等级

Topic topic=(Topic)(pager.getCurrentPagedText().get(i));%>

       }if(str.length()>8){returnstr.substring(0,8)+"9b8a8a44dd1c74ae49c20a7cd451974e.png";

}else{returnstr;

}

}%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是JavaWeb中的简单分页完整代码,使用JSP和Servlet实现: 1. 在JSP页面中,使用表格展示数据并添加分页导航: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>分页示例</title> </head> <body> <h1>分页示例</h1> <table border="1"> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> </tr> <c:forEach items="${list}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.age}</td> </tr> </c:forEach> </table> <br> <c:if test="${page > 1}"> <a href="list?page=${page - 1}">上一页</a> </c:if> <c:if test="${page < pageCount}"> <a href="list?page=${page + 1}">下一页</a> </c:if> </body> </html> ``` 2. 在Servlet中查询数据库并设置分页相关参数: ```java package com.example.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.example.dao.UserDao; import com.example.entity.User; @WebServlet("/list") public class UserListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int pageSize = 10; // 每页显示的记录数 int page = Integer.parseInt(request.getParameter("page")); // 当前页码 int offset = (page - 1) * pageSize; // 当前页第一条记录的偏移量 UserDao dao = new UserDao(); List<User> list = dao.list(offset, pageSize); // 查询当前页的数据 int totalCount = dao.count(); // 总记录数 int pageCount = (int) Math.ceil(totalCount * 1.0 / pageSize); // 总页数 request.setAttribute("list", list); request.setAttribute("page", page); request.setAttribute("pageCount", pageCount); request.getRequestDispatcher("list.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` 3. 在DAO中查询数据库并返回数据: ```java package com.example.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.example.entity.User; public class UserDao { private String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; private String username = "root"; private String password = "123456"; public List<User> list(int offset, int pageSize) { List<User> list = new ArrayList<>(); try (Connection conn = DriverManager.getConnection(url, username, password)) { String sql = "SELECT * FROM user LIMIT ?, ?"; try (PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setInt(1, offset); stmt.setInt(2, pageSize); try (ResultSet rs = stmt.executeQuery()) { while (rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); list.add(user); } } } } catch (Exception e) { e.printStackTrace(); } return list; } public int count() { int count = 0; try (Connection conn = DriverManager.getConnection(url, username, password)) { String sql = "SELECT COUNT(*) FROM user"; try (PreparedStatement stmt = conn.prepareStatement(sql)) { try (ResultSet rs = stmt.executeQuery()) { if (rs.next()) { count = rs.getInt(1); } } } } catch (Exception e) { e.printStackTrace(); } return count; } } ``` 可以根据需求自行修改代码,例如更改每页显示的记录数、更改查询语句等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值