`
Clayz
  • 浏览: 297622 次
  • 性别: 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
将每页显示多少行用做成一个资源文件;
不错顶

相关推荐

    分页组件--通用的分页标签

    在这个“通用的分页标签”项目中,我们看到它是基于JSP的,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者将Java代码嵌入到HTML或XML文档中,用于生成动态内容。在JSP中,自定义标签库(Tag Library)是...

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

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

    简易的JSP信息管理程序,JSP MVC 数据分页增 删 改 查

    1. **JSP语法**:理解JSP中如何插入Java代码,使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签简化页面逻辑。 2. **MVC设计模式**:掌握MVC架构的原理和应用场景,了解各部分的...

    java web简易留言版

    【Java Web简易留言版】是一个基于JSP技术开发的在线互动平台,允许用户在网站上发布、查看和回复...总的来说,这个“java web简易留言版”项目是一个学习和实践JSP、Servlet、数据库操作和Web开发基本原理的理想平台。

    java开源包4

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

    java开源包101

    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 为你的网站提供网站查询,并且可以...

    用jsp写的简易留言板

    【jsp简易留言板】是一个基于JavaServer Pages(JSP)技术构建的在线互动平台,它允许用户在网站上发表留言并查看其他人的留言。这个系统具备基本的增删查改功能,以及分页显示留言,提高了用户体验。下面我们将深入...

    java开源包3

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

    java开源包1

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

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

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    Java资源包01

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

    简易的JavaWeb图书订阅管理系统

    【简易的JavaWeb图书订阅管理系统】是一个采用JavaWeb技术构建的在线服务平台,旨在提供图书的订阅和管理服务。系统的核心是结合MySQL数据库和Tomcat应用服务器来实现功能丰富的用户交互和数据存储。以下是对该系统...

    bbs项目源码(java+mysql)

    【标题】"bbs项目源码(java...同时,通过阅读源码,可以学习到如何设计和实现论坛的用户认证、权限控制、分页显示、搜索功能等常见模块。对于想要提升自己在Java和MySQL领域技能的开发者来说,这是一个极好的实战项目。

    java-前端页面模板

    而查询展示页面则是用于显示数据列表,可能包括分页、排序和过滤等功能。 该模板的简易特性意味着它可能使用HTML、CSS和JavaScript等基础技术,可能结合了Bootstrap等流行的CSS框架来实现响应式设计,使页面能在...

    简易停车场收费管理系统

    《简易停车场收费管理系统》是一个基于Java Web技术的实践项目,旨在帮助初学者理解和掌握Web开发中的核心概念和技术。该项目涵盖了Web开发的多个重要知识点,包括过滤器(Filter)、自定义标签(Custom Tags)、...

Global site tag (gtag.js) - Google Analytics