注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

引用 JSP自定义分页标签  

2010-04-21 21:10:52|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文转载自Thinking《JSP自定义分页标签》

 

引用

ThinkingJSP自定义分页标签
自定义标签类 (PageTag.java):

import java.io.IOException;
import java.text.MessageFormat;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

/**
 * 分页标签
 *
 */
public class PageTag extends TagSupport {
    private String url; //链接地址
    private int curpage;// 当前页
    private int pagesize; // 页大小
    private int totalLines; // 总记录条数

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUrl() {
        return url;
    }

    public int getCurpage() {
        return curpage;
    }

    public void setCurpage(int curpage) {
        this.curpage = curpage;
    }

    public int getPagesize() {
        return pagesize;
    }

    public void setPagesize(int pagesize) {
        this.pagesize = pagesize;
    }

    public int getTotalLines() {
        return totalLines;
    }

    public void setTotalLines(int totalLines) {
        this.totalLines = totalLines;
    }
    
    /**
     * 计算总页数
     * @return
     */
    private int totalPages(){
        return totalLines % pagesize == 0 ? totalLines / pagesize
                : totalLines / pagesize + 1;
    }

    @Override
    public int doStartTag() throws JspException {
        JspWriter out = this.pageContext.getOut();
        
        //{0}:url, {1}:curpage, {2}:pagesize, {3}:第一页 上一页 下一页 最后一页
        String link = "<a href=''{0}?curpage={1}&pagesize={2}''>{3}</a>";
        
        if(curpage == 0) curpage = 1;
        if(pagesize == 0) pagesize = 5;
        
        int totalPages = this.totalPages();
        if(curpage > totalPages) curpage = totalPages;
        if(curpage < 1) curpage = 1;
        
        String first = MessageFormat.format(link, url, "1", pagesize, "第一页");
        
        String previous = null;
        if(curpage <= 1){
            previous = "上一页";
        }else{
            previous = MessageFormat.format(link, url, String.valueOf(curpage - 1), pagesize, "上一页");
        }
        
        String next = null;
        if(curpage >= totalPages){
            next = "下一页";
        }else{
            next = MessageFormat.format(link, url, String.valueOf(curpage + 1), pagesize, "下一页");
        }
        
        String last = MessageFormat.format(link, url, String.valueOf(totalPages), pagesize, "最后一页");
        
        try {
            String html = "{0} {1} {2} {3} 当前第{4}页 共{5}页 每页显示{6}条 共有{7}条";
            html = MessageFormat.format(html,
                    first,
                    previous,
                    next,
                    last,
                    String.valueOf(curpage) ,
                    String.valueOf(totalPages),
                    String.valueOf(pagesize),
                    String.valueOf(totalLines));
            
            out.println(html);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return EVAL_BODY_INCLUDE;
    }
}


标签定义文件(page.tld):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">

<taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>page</short-name>
   
    <tag>
        <name>page</name>
        <tag-class>PageTag</tag-class> <!- -这里是自定义标签类的完整类名:我这里是PageTag- ->
        <body-content>empty</body-content>
       
        <attribute>
            <name>url</name>
            <required>true</required>
            <rtexprvalue>false</rtexprvalue>
        </attribute>
        <attribute>
            <name>curpage</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>pagesize</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>totalLines</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

Jsp页面引用:
<%@ taglib uri="/WEB-INF/page.tld" prefix="page"%>
<page:page url="listpro.jsp" pagesize="${param.pagesize}"
                    totalLines="${totalLines}" curpage="${param.curpage}" />

页面效果:
JSP自定义分页标签 - Thinking - 没有终点
  评论这张
 
阅读(404)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017