`
Clayz
  • 浏览: 293393 次
  • 性别: Icon_minigender_1
  • 来自: 东京
社区版块
存档分类
最新评论

简易java分页标签

    博客分类:
  • Java
阅读更多

1,标签的实现类NumenTag.java

java 代码
 
  1. import  java.util.ArrayList;  
  2. import  java.util.HashMap;  
  3. import  java.util.List;  
  4. import  java.util.Map;  
  5.   
  6. import  javax.servlet.jsp.JspException;  
  7. import  javax.servlet.jsp.JspWriter;  
  8. import  javax.servlet.jsp.tagext.TagSupport;  
  9.   
  10. /** */ /**  
  11.  * 自定义的分页标签  
  12.  *  
  13.  * @author 马万林  
  14.  *  
  15.  */   
  16. public   class  NumenTag  extends  TagSupport {  
  17.   
  18.     private  String url =  null ;  
  19.   
  20.     private  Result result;  
  21.   
  22.     private  String page =  null ;  
  23.   
  24.     private  String[] p;  
  25.   
  26.     private  Map kv =  new  HashMap();  
  27.   
  28.     private  List key =  null ;  
  29.   
  30.     /** */ /**  
  31.      * 分离参数  
  32.      * @param params  
  33.      */   
  34.     public   void  setParams(String params) {  
  35.         key = new  ArrayList();  
  36.         p = params.split(";" );  
  37.         for  ( int  i =  0 ; p.length> 1 &&i < p.length; i++) {  
  38.             kv.put(p[i].split(":" )[ 0 ], p[i].split( ":" )[ 1 ]);  
  39.             key.add(p[i].split(":" )[ 0 ]);  
  40.         }  
  41.     }  
  42.   
  43.     /** */ /**  
  44.      * 分页的结果  
  45.      * @param result  
  46.      */   
  47.     public   void  setResult(String result) {  
  48.         this .result = (Result) pageContext.getRequest().getAttribute( "result" );  
  49.         this .page = (String) pageContext.getRequest().getAttribute( "page" );  
  50.     }  
  51.   
  52.     public   void  setUrl(String url) {  
  53.         this .url = url;  
  54.     }  
  55.   
  56.     public   int  doStartTag()  throws  JspException {  
  57.         StringBuffer sb = null ;  
  58.         if  (result !=  null  && result.getContent() !=  null   
  59.                 && result.getContent().size() > 0 ) {  
  60.             sb = new  StringBuffer( "分页: " );  
  61.             if  (result.getPage().getHasPrePage()){  
  62.                 sb.append("<a href='" ).append(url);  
  63.                 if  (url.indexOf( "?" ) == - 1 )  
  64.                     sb.append("?page=1" );  
  65.                 else   
  66.                     sb.append("&page=1" );  
  67.                 linkParams(sb);  
  68.                 sb.append("'>" ).append( "首页" ).append( "</a>" ).append( " | " );  
  69.                 sb.append("<a href='" ).append(url);  
  70.                 if  (url.indexOf( "?" ) == - 1 )  
  71.                     sb.append("?page=" ).append(  
  72.                             result.getPage().getPreviousPage());  
  73.                 else   
  74.                     sb.append("&page=" ).append(  
  75.                             result.getPage().getPreviousPage());  
  76.                 linkParams(sb);  
  77.                 sb.append("'>" ).append( "上页" ).append( "</a>" ).append( " | " );  
  78.             }  
  79.             if  (result.getPage().getHasNextPage()) {  
  80.                 sb.append("<a href='" ).append(url);  
  81.                 if  (url.indexOf( "?" ) == - 1 )  
  82.                     sb.append("?page=" ).append(result.getPage().getNextPage());  
  83.                 else   
  84.                     sb.append("&page=" ).append(result.getPage().getNextPage());  
  85.                 linkParams(sb);  
  86.                 sb.append("'>" ).append( "下页" ).append( "</a>" ).append( " | " );  
  87.                 sb.append("<a href='" ).append(url);  
  88.                 if  (url.indexOf( "?" ) == - 1 )  
  89.                     sb.append("?page=" ).append(result.getPage().getTotalPage());  
  90.                 else   
  91.                     sb.append("&page=" ).append(result.getPage().getTotalPage());  
  92.                 linkParams(sb);  
  93.                 sb.append("'>" ).append( "尾页" ).append( "</a>" );  
  94.             }  
  95.             sb.append(" 跳转到:《select name='goToPage' onchange='javascript:goPage(this.value)'》" );  
  96.             int  s = result.getPage().getTotalCount();  
  97.             for  ( int  i =  1 ; i <= s; i++) {  
  98.                 sb.append("<option value=" ).append(i);  
  99.                 if  (Integer.parseInt(page) == i)  
  100.                     sb.append(" selected" );  
  101.                 sb.append(">第" ).append(i).append( "页</option>" );  
  102.             }  
  103.             sb.append("</select>" );  
  104.             sb.append("<script language=javascript>" );  
  105.             sb.append("function goPage(page){" ).append( "window.location='" )  
  106.                     .append(url);  
  107.             if  (url.indexOf( "?" ) == - 1 )  
  108.                 sb.append("?page='+" ).append( "page" );  
  109.             else   
  110.                 sb.append("&page='+" ).append( "page" );  
  111.             sb.append("+'" );  
  112.             linkParams(sb);  
  113.             sb.append("';" );  
  114.             sb.append("}" );  
  115.             sb.append("</script>" );  
  116.         }  
  117.         try  {  
  118.             if  (sb !=  null ) {  
  119.                 JspWriter out = pageContext.getOut();  
  120.                 out.print(sb);  
  121.             }  
  122.         } catch  (Exception e) {  
  123.             throw   new  JspException(e);  
  124.         }  
  125.         return  EVAL_PAGE;  
  126.     }  
  127.      
  128.     /** */ /**  
  129.      * 链接参数处理  
  130.      * @param sb  
  131.      */   
  132.     private   void  linkParams(StringBuffer sb) {  
  133.         for  ( int  i =  0 ; i < key.size(); i++) {  
  134.             sb.append("&" ).append(key.get(i)).append( "=" ).append(  
  135.                     kv.get(key.get(i)));  
  136.         }  
  137.     }  
  138.   
  139. }  



2,标签定义文件numentag.tld

xml 代码
 
  1. <? xml    version = "1.0"    encoding = "utf-8"    ?>   
  2.  <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">   
  3. < taglib >   
  4.     < tlib-version > 1.0 </ tlib-version >   
  5.     < jsp-version > 1.2 </ jsp-version >   
  6.     < short-name > numen </ short-name >   
  7.     <!--OutputTag-->   
  8.     < tag >   
  9.         < name > out </ name >   
  10.         < tag-class > cn.cityyouth.util.NumenTag </ tag-class >   
  11.         < body-content > empty </ body-content >   
  12.         < attribute >   
  13.             < name > url </ name >   
  14.             < required > true </ required >   
  15.             < rtexprvalue > true </ rtexprvalue >   
  16.         </ attribute >   
  17.         < attribute >   
  18.             < name > result </ name >   
  19.             < required > true </ required >   
  20.             < rtexprvalue > true </ rtexprvalue >   
  21.         </ attribute >   
  22.         < attribute >   
  23.             < name > params </ name >   
  24.             < required > false </ required >   
  25.             < rtexprvalue > true </ rtexprvalue >   
  26.         </ attribute >   
  27.     </ tag >   
  28. </ taglib >   



3.js

xml 代码
 
  1. < %@ page  contentType = "text/html; charset=utf-8" % >   
  2. < %@ include  file = "/common/taglibs.jsp" % >   
  3. < %@ taglib   uri = "/WEB-INF/numentag.tld"    prefix = "n" % >   
  4. < html >   
  5. < head >   
  6. </ head >   
  7. < body >   
  8. < table >   
  9. < tr > < td >   
  10. < n:out   url = "test.do"   result = "result"   params = "${type}" />   
  11. </ td > </ tr >   
  12. </ table >   
  13. </ body >   
  14. </ html >   



源自:http://blog.csdn.net/numen_wlm/archive/2007/01/30/1497778.aspx

分享到:
评论
3 楼 375721064 2008-10-09  
写错 Result对象是哪个?
2 楼 375721064 2008-10-09  
Request对象是哪个?
1 楼 gongchangming 2008-06-06  
可将所有参数做成hidden
将每页显示多少行用做成一个资源文件;
不错顶

相关推荐

    简单易用的自定义标签分页显示

    简单,简易使用 package auvtech; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class ...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包101

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包9

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    Java资源包01

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    jsp-data-grid:这个 JSP 标签库提供了一种使用 Java 和 JSP 创建数据网格的简单方法

    Java Persistence API (JPA) 的简易适配器。 分页只查询真正需要的项目。 这是库的继承部分。 行的过滤器是基于 java 反射生成的。 它们会自动适应实际的列类型。 关系会自动加载。 网格的所有参数都在 URL 中...

    java简易版开心农场源码-chenrenfei-sagacity-sqltoy:chenrenfei-sagacity-sqltoy

    java简易版开心农场源码 使用文档(完善进度70%,可以预览) QQ交流群:531812227 使用单位或项目: 宁波农行 山东农信 成都银行 中国建行上海开发中心 合肥农信 浦发电销 拉卡拉支付集团 中化壹化网 中化石化销售 苏州...

    web网站源码2(多套)

    [其他类别]分页 QQ菜单 jsp标签_noka3.9 [其他类别]检测JSP服务器内存的Ajax程序_systemjc [其他类别]简易数据库关系映射框架EasyDBO v0.1.0 测试版_easydbo010 [其他类别]铭洲网络后台解决方案_ccmingzhou [其他...

Global site tag (gtag.js) - Google Analytics