闲来无事,自己弄个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分页组件 只要2分哦
jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页...
jsp分页组件+实例+数据库.rarjsp分页组件+实例+数据库.rar
java web应用分页组件,可适用于jsp+servlet或s2sh,配置非常简单,引入二行代码即可,内置详细的操作配置文档和jar包及实例文件,未考虑性能优化,对性能要求很高的高手请自行测试或绕行
pager-taglib-2.0 JSP分页组件 包括jar包和安装使用说明
很实用的jsp分页组件,只要简单的配置即可
很久以前写的,分享一下,数字翻页的长度,容量,均可自定义
功能强大的JSP分页组件 valuelist0.1.8 封装的很好
分页功能由javaBean实现,只需传入简单的参数即可,实现即为简单,可以自由修改代码
实现数据库的数据的分页功能,jsp +bean. 简单实用。
java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页
这个也是出于网上,但经过个人整理。如果想用,慢慢往下看。 里面有详细的代码注释。可以参考。 数据库采用mysql,数据库建库数据库代码没有提供,请自行...该代码可作为通用分页组件使用。 其他功能待有时间再次添加
JSP分页技术,非常好的的学习Jsp分页技术的教程,适合初学者
该组件为jsp页面数据分页通用组件,可用于所有struts或jsp+javabean的页面分页功能!在实际项目中完全可以适用!内含源码以及详细注释!!好东西,给大家一起学习分享!
jsp 分页 值得看看jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页
jsp分页效果jsp分页效果jsp分页效果jsp分页效果jsp分页效果jsp分页效果jsp分页效果jsp分页效果jsp分页效果jsp分页效果jsp分页效果
非常实用的jsp+jdbc分页组件及实例代码
分页jsp,将该jsp引入需要分页的页面,传入参数就行。通过<jsp:include page="xxx.jsp"/>将页面引入,可实现单个点击分页,也可实现,输入数字分页。