闲来无事,自己弄个jsp的分页组件来玩玩,也就能给新手参考参考了 , 老鸟就可以飘过了!!~~~
先上个效果图吧!!~

其实 也就是把jquery分页插件的 样式给弄了过来!~~~~
代码开始:
首先先创建一个页码的实体类
Pager.java
public class Pager {
private int pagesize=5; //每页显示数
private int start=1; //开始条数
private int end=1; //结束条数
private int sum; //总数
private int curpage=1; //当前页
private int pages=1; //总页数
public int getCurpage() {
return curpage;
}
public void setCurpage(int curpage) {
if(curpage<1)curpage=1;
if(curpage>this.getPages())curpage=this.getPages();
this.curpage = curpage;
}
public int getEnd() {
end=this.getStart()+pagesize;
return end;
}
public void setEnd(int end) {
this.end = end;
}
public int getPages() {
if(sum%pagesize==0){
pages=sum/pagesize;
}else{
pages=sum/pagesize+1;
}
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getStart() {
start=(this.getCurpage()-1)*pagesize+1;
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
}
PagerTag.java 自定义标签
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
public class PagerTag extends TagSupport {
private static final long serialVersionUID = 183373550159351609L;
private Pager pager;
private String urlstart;
private String urlend;
public PagerTag() {
}
public int doStartTag() throws JspException {
try {
String bar=getNavigatorBar();
pageContext.getOut().write(bar);
return SKIP_BODY;
} catch (IOException e) {
e.printStackTrace();
throw new JspException(e);
}
}
private String getNavigatorBar()
{
StringBuffer bar=new StringBuffer();
/** 下载包中此处未修改 ,请手动修改一下 **/
/** 下载包中此处未修改 ,请手动修改一下 **/
if( pager==null){
pager = new Pager();
}
/** 下载包中此处未修改 ,请手动修改一下 **/
int curpage = pager.getCurpage();//当前页
int pages = pager.getPages();//总页数
/**
* 第一页
*/
//如果是第一页
if(curpage == 1){
bar.append("<span class='current prev'>Prev</span>")
.append("<span class='current'>1</span>");
}else{
bar.append("<a href='"+urlstart+(curpage-1)+urlend+"'>Prev</a>")
.append("<a href='"+urlstart+1+urlend+"'>1</a>");
}
/**
* 结束(第一页)
*/
//如果总页数小于11
if(pages <= 11){
for(int i =2 ; i<pages;i++){
if(curpage==i){
bar.append("<span class='current'>"+i+"</span>");
}else{
bar.append("<a href='"+urlstart+i+urlend+"'>"+i+"</a>");
}
}
}else{//总页数大于11
if(curpage <=6){ //当前页小页等于6时 (页码要与前面的街上)
for(int i=2;i<=7;i++){
if(curpage==i){
bar.append("<span class='current'>"+i+"</span>");
}else{
bar.append("<a href='"+urlstart+i+urlend+"'>"+i+"</a>");
}
}
bar.append("<span>....</span>");
bar.append("<a href='"+urlstart+(pages-1)+urlend+"'>"+(pages-1)+"</a>");
}else if(curpage>=pages-5){ //当前页大于最大页-5时 要与后面的接上
bar.append("<a href='"+urlstart+2+urlend+"'>"+2+"</a>");
bar.append("<span>....</span>");
for(int i=pages-5-3;i<=pages-1;i++){
if(curpage==i){
bar.append("<span class='current'>"+i+"</span>");
}else{
bar.append("<a href='"+urlstart+i+urlend+"'>"+i+"</a>");
}
}
}else{
bar.append("<a href='"+urlstart+2+urlend+"'>"+2+"</a>");
bar.append("<span>....</span>");
for(int i=curpage-3;i<=curpage+3;i++){
if(curpage==i){
bar.append("<span class='current'>"+i+"</span>");
}else{
bar.append("<a href='"+urlstart+i+urlend+"'>"+i+"</a>");
}
}
bar.append("<span>....</span>");
bar.append("<a href='"+urlstart+(pages-1)+urlend+"'>"+(pages-1)+"</a>");
}
}
/**
* 最后一页
*/
//如果是最后一页
if(curpage == pages){
bar.append("<span class='current'>"+pages+"</span>")
.append("<span class='current next'>Next</span>");
}else{
bar.append("<a href='"+urlstart+pages+urlend+"'>"+pages+"</a>")
.append("<a href='"+urlstart+(curpage+1)+urlend+"'>Next</a>");
}
bar.append("<select style='height:26px;text-align: center;padding: 0.3em 0.5em;' onchange=\"location.href='"+urlstart+"'+this.value+'"+urlend+"'\">");
for(int i=1;i<=pages;i++){
if(curpage==i){
bar.append("<option value='"+i+"' selected='selected'>").append("第"+i+"页").append("</option>");
}else{
bar.append("<option value='"+i+"'>").append("第"+i+"页").append("</option>");
}
}
bar.append("</select>");
return bar.toString();
}
public int doEndTag() throws JspTagException
{
return EVAL_PAGE;
}
public Pager getPager() {
return pager;
}
public void setPager(Pager pager) {
this.pager = pager;
}
public String getUrlend() {
return urlend;
}
public void setUrlend(String urlend) {
this.urlend = urlend;
}
public String getUrlstart() {
return urlstart;
}
public void setUrlstart(String urlstart) {
this.urlstart = urlstart;
}
}
在WEB-INF 下创建 pages.tld 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglib_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>papa</shortname>
<!--====================pager:pagebar=====================-->
<tag>
<name>pager</name>
<tagclass>com.test.PagerTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>pager tag provide the frame of the page divider</info>
<attribute>
<name>pager</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>urlstart</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>urlend</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>css</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
在页面中的应用
<%@ taglib prefix="pages" uri="/WEB-INF/pages.tld" %>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="pagination.css" />
</head>
<body>
<div class="pagination">
<pages:pager pager="${pager}" urlend="" urlstart="PageServlet?curpager="></pages:pager>
</div>
</body>
</html>
PageServlet.java
package com.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PageServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
Pager pager = new Pager();
String curpager= request.getParameter("curpager");
pager.setPagesize(5);
pager.setSum(357);
pager.setCurpage(Integer.parseInt(curpager));
request.setAttribute("pager", pager);
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
使用说明:
pager.setPagesize(5); //在应用中 需要设置 每页显示的数量
pager.setSum(357); // 设置总数量
pager.setCurpage(Integer.parseInt(curpager)); //设置当前页
在后台查询中直接获得
pager.getStart(); //从第几条开始显示
pager.getEnd(); //第几条结束
例如 forumdisplay.jsp?page=2
&fid=55
2是页码
<pages:pager pager="${pager}" urlend="" urlstart="PageServlet?curpager="></pages:pager>
urlstart=" forumdisplay.jsp?page=" //页码的前一部分
urlend="&fid=55" //页码的后一部分
具体看代码 比较简单 都有注释````

- 大小: 9.4 KB
分享到:
相关推荐
通用的jsp分页组件,实例化后只需设置好各种属性,然后调用API即可得到已封装好“首页” “上一页”,“下一页”等分页操作的html表格String,直接在jsp页面中即可, 支持跳转到jsp和跳转到Action(struts架构)...
本篇将详细介绍一个通用的JSP分页组件及其相关知识点。 **一、JSP分页组件的原理** JSP分页组件主要是通过计算总页数和当前页数来实现的。它首先获取数据库中的记录总数,然后根据每页显示的记录数来计算总页数。在...
这时,jsp分页组件就显得尤为重要。 `jsp分页组件`是一种专门用于Java Web应用的技术,它能够帮助开发者在JSP(JavaServer Pages)中实现高效、灵活的分页功能。这个组件通常包括以下几个关键部分: 1. **参数设置...
`jsp分页组件+实例+数据库.rar` 是一个包含JSP分页功能的组件,配合实际示例和数据库操作的资源包。在这个压缩文件中,我们可能找到一个完整的解决方案,用于在Web应用程序中实现高效且用户友好的数据分页。下面将...
`NumberPage`是一个基于JSP的数字分页组件,适用于网页显示数据时进行页面导航。这个组件允许开发者自定义数字翻页的长度和容量,以适应不同场景的需求。 首先,我们需要了解分页的基本概念。在数据库查询中,如果...
总结来说,“封装好直接使用的jsp分页插件”是一个功能全面、配置简单的Java Web分页组件,它可以让开发者从复杂的分页逻辑中解放出来,将重点放在业务逻辑的实现上。然而,开发者在选择使用时,也应留意其在性能...
本项目以"JSP+JavaBean"的技术栈,实现了一个简单易用的分页组件。以下是这个组件的核心知识点及详细说明: 1. **JavaBean**: JavaBean是一种遵循特定规范的Java类,它主要用于封装数据和业务逻辑。在这个分页组件...
本项目以"简单的分页组件(jsp,bean)"为主题,通过jsp(JavaServer Pages)和bean(JavaBean)技术实现了一个基础的分页功能。 首先,我们来理解一下jsp和bean在Web开发中的角色。JSP是Java的一种动态网页技术,...
**JSP分页组件**是Java Web开发中一个不可或缺的部分,尤其在处理大量数据展示时,如用户查询、报表分析等场景。它允许用户轻松地浏览数据库中的数据,而无需一次性加载所有记录,从而提高页面加载速度,优化用户...
**标题解析:**"pager-taglib-2.0 JSP分页组件" 是一个专用于JSP页面的分页功能的库,版本为2.0。分页是Web应用程序中常见的功能,它允许用户在大量数据中进行导航,通常用于数据库查询结果的展示,如电商网站的商品...
**JSP页面数据分页通用组件详解** 在Web开发中,数据分页是常见的功能,尤其是在处理大量数据时,为了提高用户体验和加载速度,通常会将数据分成多个页进行显示。`jsp页面数据分页通用组件`就是这样一个工具,它为...
【JSP+MySQL分页组件】是Web开发中常见的功能,用于处理大量数据时提高页面加载速度和用户体验。在Web应用程序中,一次性加载所有数据可能导致页面响应慢,尤其是在数据库存储的数据量庞大的情况下。分页技术可以...
**JSP分页插件详解** 在Web开发中,数据量较大的时候,为了提高用户体验,通常会采用分页的方式来展示信息。JSP(JavaServer Pages)作为Java领域常用的动态网页技术,结合分页插件可以方便地实现这一功能。本篇...
功能强大的JSP分页组件 valuelist0.1.8 封装的很好
在这个特定的项目中,我们关注的是三个关键知识点:JSP分页组件、JSP中的存储过程调用以及URL参数传递。 首先,让我们详细了解一下**JSP分页组件**。在处理大量数据时,分页是常见的优化手段,可以提高用户体验并...
本文将详细讲解"jdbc+jsp分页组件+源代码"的相关知识点。 1. JDBC基础: JDBC是Java编程语言访问数据库的桥梁,它提供了一组接口和类,使得Java开发者能够编写与数据库交互的代码。JDBC的主要功能包括连接数据库、...
java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页
这个也是出于网上,但经过个人整理。如果想用,慢慢往下看。 里面有详细的代码注释。可以参考。 数据库采用mysql,数据库建库数据库代码没有提供,请自行...该代码可作为通用分页组件使用。 其他功能待有时间再次添加