当前位置: 网学 > 编程文档 > JSP > 正文

hibernate + 自定义标签分页

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式

关于分页,网上看了很多文章,相信所有人都会觉得J2EE中实现分页相对于asp.NET中处理分页实在是一件很痛苦的事..

下面就结合我做的例子说明一下通用的分页标签实现.

先说明一下分页所需要用到的文件 Pager.java (不用说,肯定是保存分页信息的了),PagerHelper.java(处理页面信息) ,PageTag.java(自定义分页标签),还有一个是pagetag.tld文件,分页标签描述文件.

先帖出这四个文件的源码

1、Pager.java

package org.awc.commns;

/**
* 保存分页信息的类
*
* @author Administrator
*
*/
public class Pager {
private int totalRows; // 总行数

private int pageSize; // 每页显示的行数

private int currentPage; // 当前页号

private int totalPages; // 总页数

private int startRow; // 当前页在数据库中的起始行

private String linkUrl; // 要跳转的URL

public Pager() {
}

public Pager(int _totalRows,int _pageSize) {
totalRows = _totalRows;
pageSize = _pageSize;
totalPages = totalRows / pageSize;
int mod = totalRows % pageSize;
if (mod > 0) {
totalPages++;
}
currentPage = 1;
startRow = 0;
}

//此处略去属性的getter和setter方法

/**
* 设定hibernate查询的起始行数
*
* @param currentPage
*/

public void setStart(int currentPage) {
this.currentPage = currentPage;
startRow = (currentPage - 1) * pageSize;
}
}

2、PagerHelper.java

import javax.servlet.http.*;

/**
* 控制分页的类
*
* @author Administrator
*
*/
public class PagerHelper {

public static Pager getPager(HttpServletRequest httpServletRequest,
int totalRows,int pageSize) {

// 定义pager对象,用于传到页面
Pager pager = new Pager(totalRows,pageSize);

// 从Request对象中获取当前页号
String currentPage = httpServletRequest.getParameter("cpage");

// 如果当前页号为空,表示为首次查询该页
// 如果不为空,则刷新pager对象,输入当前页号等信息
if (currentPage != null) {
pager.setStart(Integer.parseInt(currentPage));
}
else {
pager.setStart(1);
}

return pager;
}
}

3、PageTag.java

import java.io.IOException;

import javax.servlet.jsp.JSPWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class PageTag extends TagSupport {
/**
*
*/
private static final long serialVersionUID = 1L;

private Pager pager;

public int doStartTag() {
try {
JspWriter out = pageContext.getOut();

out.print("第 " + pager.getCurrentPage() + " 页/共 "
+ (pager.getTotalPages()) + " 页");

if (pager.getCurrentPage() == 1) {
out.print("[最首页]");
out.print("");
}
if (pager.getCurrentPage() != 1) {
out.print("[<a href=''" + pager.getLinkUrl()
+ "&cpage=1''>最首页</a>]");
out.print("[<a href=''" + pager.getLinkUrl() + "&cpage="
+ (pager.getCurrentPage() - 1) + "''></a>]");
}

for (int i = pager.getCurrentPage() - 3; i <= pager
.getCurrentPage() + 3; i++) {
if (i <= 0 || i > pager.getTotalPages()) {
continue;
}
if (i == pager.getCurrentPage()) {
out
.print("[<span style=''color:#FF0000; border: 1px solid #cccccc; font-weight:bold; width:15px;text-align: center;''> "
+ i + " </span>]");
} else {
out.print("[<a href=''" + pager.getLinkUrl() + "&cpage=" + i
+ "''> " + i + " </a>]&q

  • 下一篇资讯: [JSP]
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号