当前位置: 首页 > 编程语言 > JSP分页之-分页标签类

JSP分页之-分页标签类

  • 分类:编程语言
  • 本文标签: JSP
  • 发布时间:2017-12-17 21:59:57
  • 查看数: 1
package com.dbtemplate.tag;

import java.io.IOException;

import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.log4j.Logger;

import com.dbtemplate.domain.PageInfo;

/**
 * <pre>
 * PaginationTag是一个JSP自定义标签,它的功能如下:
 * ·为页面提供分页信息
 * 
 * 它的处理流程如下:
 * ·获取存放在Session中的PageInfo对象
 * ·根据PageInfo中的一系列标志打印分页信息
 * 
 * </pre>
 * 
 * 
@author peng
 * 
 
*/

public class PaginationTag extends TagSupport {

    
static Logger logger = Logger.getLogger(PaginationTag.class.getName());

    
static final String baseUrl = "<a href = "user.jsp?";

    
static final String endTag = "</a>";

    
/*
     * 第<%=intPage%>页 共<%=intPageCount%>页(共<%=intRowCount%>条记录)
     * 
     * <!--显示首页链接--> <a href = "user.jsp?">首页</a>
     * 
     * <!--显示上一页链接--> <% if(intPage>1){ %> <a href = "user.jsp?page=<%=intPage-1%>">上一页</a>
     * <%}%>
     * 
     * <!--显示下一页链接--> <% if(intPage<intPageCount){%> <a href = "user.jsp?page=<%=intPage+1%>">下一页</a>
     * <%}%>
     * 
     * <!--显示末页链接--> <a href = "user.jsp?page=<%=intPageCount%>">末页</a>
     * 
     * <!--显示刷新数据链接--> <a onclick = "javascipt:window.location.reload();"
     * onmouseover = "this.style.textDecoration = 'underline';" onmouseout =
     * "this.style.testDecoration = 'none';" style = "cursor:hand;" >刷新数据</a>
     
*/


    
public int doEndTag() throws JspException {

        logger.debug(
"Start to handle Pagination infomatin.");
        
// 获取保存在Session中的PageInfo对象
        HttpSession session = pageContext.getSession();
        PageInfo pageInfo 
= (PageInfo) session.getAttribute("page");
        
        
// 根据PageInfo中的信息显示分页信息
        JspWriter writer = pageContext.getOut();
        StringBuffer output 
= new StringBuffer();
        
        
// 页数显示
        output.append(" 第").append(pageInfo.getCurrentPageNo()).append("页 ");
        output.append(
" (共").append(pageInfo.getTotalRecords()).append("条记录)");
        
        
// 首页链接
        output.append(baseUrl).append("">").append("首页").append(endTag);
        
        
// 上一页链接
        if (pageInfo.isHasPreviousPage()) {
            output.append(baseUrl).append(
"page=").append(
                    pageInfo.getPreviousPageNo()).append(
"">").append("上一页")
                    .append(endTag);
        }

        
        
// 下一页链接
        if (pageInfo.isHasNextPage()) {
            output.append(baseUrl).append(
"page=").append(
                    pageInfo.getNextPageNo()).append(
"">").append("下一页")
                    .append(endTag);
        }

        
        
// 末页链接
        output.append(baseUrl).append("page=").append(pageInfo.getTotalPages())
                .append(
"">").append("末页").append(endTag);
        
        
// 刷新页面链接
        output.append("<a onclik = "javascript:window.location.reload();"");
        output
                .append(
" onmouseover = "this.style.textDecoration = 'underline;"");
        output.append(
" onmouseout = "this.style.textDecoration = 'none';"");
        output.append(
" style = "cursor:hand;"");
        output.append(
"刷新");
        output.append(endTag);

        
// 打印分页信息
        try {
            writer.println(output);
        }
 catch (IOException ioe) {
            logger.error(
"Error occured when handle paginatin informatin.");
            
throw new JspException(ioe.getMessage());
        }


        
return SKIP_BODY;
    }

}
 

文章来源于网络

转载时请以 超链接的形式 注明:转自疯狂泰克