我想我是海 发表于 2013-1-29 13:18:11

pager-taglib 体验

      可能是自已习惯了用自已的分页组件。一直不知道有这样一个现成的分页标签。直到那天,白衣跟我提起了一下,我Search了一下,发现了Pager-taglib这个东东。支持多种风格的分页显示。
       先简单介绍一下Pager-taglib。实际上,她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括Google的分页风格。而需要订制自已的风格的分页页面也非常简单。
      接触的当天、匆匆看了下Demo和文档,发现这个很早(2002年最新版一直到现在)就已经有的东西,似 乎比较擅长显示端分页。如,把所有的数据传到页面,通过参数设定页面大小等,可能得到很完美的分页效果。
      第二天回家,做了些小动作,把一个页码参数塞进URL里面,让程序在页面之下分了页再把结果传出来,简单地实现了服务器的分页的功能。
      Pager-taglib的文档很详尽,我如果有说也只有翻译的份,要是真的翻译也就免了,文档还是挺容易看懂的。于是我开始作了另外一个小Demo,用了原先Demo里面的一个分页风格(Simple),稍作修改。希望能帮助自已理清脉络和对朋友们有用:P
一、模拟业务类:

<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.agoit.com/Images/OutliningIndicators/None.gifpackage net.jf.ajax.business;
http://www.agoit.com/Images/OutliningIndicators/None.gif
http://www.agoit.com/Images/OutliningIndicators/None.gifimport java.util.ArrayList;
http://www.agoit.com/Images/OutliningIndicators/None.gifimport java.util.List;
http://www.agoit.com/Images/OutliningIndicators/None.gif
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gifpublic class PageManager http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif    private static List names;
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names = new ArrayList();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("black");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("black");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("black");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("black");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("blue");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("blue");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("blue");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("blue");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("blue");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("red");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("yellow");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("blue");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("green");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("blue");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("black");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("green");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        names.add("black");
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    /** *//**
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif     * 查询函数
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif     * @param pageNum 页码
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif     * @param pageSize 页大小
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif     * @param condition 查询条件
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif     * */
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    public List query(int pageNum,int pageSize,String condition)http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        List tmpNames = getNames(condition);
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        List ret = new ArrayList();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        int start = (pageNum - 1) * pageSize;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        int end = start + pageSize - 1;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        if(start >= tmpNames.size())
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            return ret;
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif        for(int i = 0; i < tmpNames.size(); i ++)http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            if(i >= start && i <= end)
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif                ret.add(tmpNames.get(i));
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif        }
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        return ret;
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    /** *//**
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif     * 按条件查询所有名字
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif     * */
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    private List getNames(String condition) http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        if(null == condition) return names;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        List ret = new ArrayList();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif        for(int i = 0; i < names.size(); i ++)http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            if(condition.equals(names.get(i)))
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif                ret.add(names.get(i));
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif        }
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        return ret;
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    /** *//**
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif     * 获得条件指定的名字的数量
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif     * */
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    public int getSize(String condition)http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            return getNames(condition).size();
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
http://www.agoit.com/Images/OutliningIndicators/None.gif
页: [1]
查看完整版本: pager-taglib 体验