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

java 自定义分页标签

阅读更多

java 分页代码

 

分页模型代码

 

/**     
 * @{#} 类名称: PageModel.java
 *    创建时间: Aug 20, 2009 11:33:16 AM     
 *         
 */      
package com.zyf.pagemodel;      

import java.io.Serializable;
     
/**     
 * @作者 <a href="http://qing393260529.iteye.com">昨夜风</a>    
 * @版本 1.0     
 */

public class PageModel implements Serializable
{
 private static final long serialVersionUID = 3696238332059708804L;
 private String pageCount="";
 private String pageIndex="";
 private String params= "";
 private String indexColor="";
 private String countColor="";
 
 public String getCountColor()
 {
  return countColor;
 }
 
 public void setCountColor(String countColor)
 {
  this.countColor = countColor;
 }
 public String getIndexColor()
 {
  return indexColor;
 }
 public void setIndexColor(String indexColor)
 {
  this.indexColor = indexColor;
 }
 public String getParams()
 {
  return params;
 }
 public void setParams(String params)
 {
  this.params = params;
 }
 public String getPageCount()
 {
  return pageCount;
 }
 public void setPageCount(String pageCount)
 {
  this.pageCount = pageCount;
 }
 public String getPageIndex()
 {
  return pageIndex;
 }
 public void setPageIndex(String pageIndex)
 {
  this.pageIndex = pageIndex;
 }
 
}

  

 

分页标签代码

 

/**     
 * @{#} 类名称: PageModelTag.java
 *    创建时间: Aug 20, 2009 11:34:50 AM     
 *         
 */      
package com.zyf.pagemodel;      

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
     
/**     
 * @作者 <a href="http://qing393260529.iteye.com">昨夜风</a>    
 * @版本 1.0     
 */

public class PageModelTag extends BodyTagSupport
{
 private static final long serialVersionUID = -4247241487535299862L;

 private String indexColor = "";

 private String countColor = "";

 private String navigationUrl = "";

 private int pageIndex;

 private int pageCount;
 // 自定义参数
 private String params = "";

 public int getPageCount()
 {
  return pageCount;
 }

 public void setPageCount(int pageCount)
 {
  this.pageCount = pageCount;
 }

 public int getPageIndex()
 {
  return pageIndex;
 }

 public void setPageIndex(int pageIndex)
 {
  this.pageIndex = pageIndex;
 }

 public int doStartTag() throws JspException
 {
  // 获取url
  navigationUrl = getParameterUrl();
  // 设置显示页数的颜色
  getColor();
  StringBuffer strb = new StringBuffer();

  // 分页
  int front = pageIndex - 4; // 前面一截
  int back = pageIndex + 4; // 后面一截

  if (pageIndex == 1)
  {
   strb.append(" 首页 ");
   strb.append(" 上一页 ");
  }
  else
  {
   strb.append("<a href=" + navigationUrl + "pageIndex=1> 首页 </a>");
   strb.append("<a href=" + navigationUrl + "pageIndex="
     + (pageIndex - 1) + "> 上一页 </a> ");
  }

  if (pageIndex < 5) // 如果索引在前5页
  {
   if (pageCount <= 10) // 总页数不够10页
   {
    for (int i = 1; i <= pageCount; i++)
    {
     if (i == pageIndex)
      strb.append(" " + pageIndex + " ");
     else
      strb.append("<a href=" + navigationUrl + "pageIndex="
        + i + ">[" + i + "]</a>");
    }
   }
   else
   {
    for (int i = 1; i < 10; i++)
    {
     if (i == pageIndex)
      strb.append(" " + pageIndex + " ");
     else
      strb.append("<a href=" + navigationUrl + "pageIndex="
        + i + ">[" + i + "]</a>");
    }
   }
  }
  else
  {
   if (front >= 1)
   {
    for (int i = 4; i > 0; i--)
     strb.append("<a href=" + navigationUrl + "pageIndex="
       + (pageIndex - i) + ">[" + (pageIndex - i)
       + "]</a>");
   }
   else
   {
    for (int i = 1; i < pageIndex; i++)
     strb.append("<a href=" + navigationUrl + "pageIndex=" + i
       + ">[" + i + "]</a>");
   }

   strb.append(" " + pageIndex + " "); // 分界线 eg: 5
   // ,前面一截就是1234,后面一截就是6789

   if (back <= pageCount)
   {
    for (int i = 1; i < 5; i++)
     strb.append("<a href=" + navigationUrl + "pageIndex="
       + (pageIndex + i) + ">[" + (pageIndex + i)
       + "]</a>");
   }
   else
   {
    for (int i = 1; i < pageCount - pageIndex + 1; i++)
     strb.append("<a href=" + navigationUrl + "pageIndex="
       + (pageIndex + i) + ">[" + (pageIndex + i)
       + "]</a>");
   }
  }

  if (pageIndex == pageCount)
  {
   strb.append(" 下一页 ");
   strb.append(" 最后一页 ");
  }
  else
  {
   strb.append(" <a href=" + navigationUrl + "pageIndex="
     + (pageIndex + 1) + "> 下一页 </a>");
   strb.append("<a href=" + navigationUrl + "pageIndex=" + pageCount
     + "> 最后一页 </a>");
  }
  strb.append("  <font color=" + indexColor + ">" + pageIndex
    + "</font>/<font color=" + countColor + ">" + pageCount
    + "</font>");
  JspWriter out = pageContext.getOut();
  try
  {
   out.println(strb.toString());
  }
  catch (IOException e)
  {
   e.printStackTrace();
  }
  return EVAL_PAGE;
 }

 private void getColor()
 {
  if (indexColor.equals(""))
   indexColor = "red";
  if (countColor.equals(""))
   countColor = "blue";
 }

 private String getParameterUrl()
 {
  System.out.println("params | "+params);
  // 没有自定义参数
  if (params.equals(""))
   return navigationUrl;
  StringBuffer url = new StringBuffer();
  url.append(navigationUrl).append("?").append(params).append("&");
  return url.toString();
 }

 public String getNavigationUrl()
 {
  return navigationUrl;
 }

 public void setNavigationUrl(String navigationUrl)
 {
  this.navigationUrl = navigationUrl;
 }

 public String getCountColor()
 {
  return countColor;
 }

 public void setCountColor(String countColor)
 {
  this.countColor = countColor;
 }

 public String getIndexColor()
 {
  return indexColor;
 }

 public void setIndexColor(String indexColor)
 {
  this.indexColor = indexColor;
 }

 public String getParams()
 {
  return params;
 }

 public void setParams(String params)
 {
  this.params = params;
 }

}
  

 

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/dtd/web-jsptaglibrary_1_2.dtd">
<taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
 <tlib-version>1.1</tlib-version>
 <jsp-version>1.2</jsp-version>
 <short-name>n</short-name> 
 <tag>
  <name>nav</name>
  <tag-class>com.zyf.pagemodel.PageModelTag</tag-class>
  <body-content>jsp</body-content>
  <attribute>
   <name>pageIndex</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
   <type>int</type>
   <description>当前的页数</description>
  </attribute>
  <attribute>
   <name>pageCount</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
   <description>总页数</description>
  </attribute>
  <attribute>
   <name>navigationUrl</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
   <description>URL</description>
  </attribute>
  <attribute>
   <name>params</name>
   <required>false</required>
   <rtexprvalue>true</rtexprvalue>
   <description>url自定义参数</description>
  </attribute>
  <attribute>
   <name>indexColor</name>
   <required>false</required>
   <rtexprvalue>true</rtexprvalue>
   <description>当前所在页的参数</description>
  </attribute>
  <attribute>
   <name>countColor</name>
   <required>false</required>
   <rtexprvalue>true</rtexprvalue>
   <description>总页数的参数</description>
  </attribute>
 </tag>
</taglib>

分享到:
评论

相关推荐

    java自定义分页标签

    总之,Java自定义分页标签通过TLD和Tag Handler类实现了对分页逻辑的封装,提高了代码的可读性和可维护性。通过这种方式,我们可以灵活地控制分页显示,适应不同的业务场景,提升Web应用的用户体验。

    java分页标签自定义分页标签自定义分页标签

    自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签...

    Java自定义分页标签

    本篇文章将详细讲解如何创建并使用一个Java自定义分页标签。 首先,我们需要了解什么是自定义标签(Custom Tags)。在JSP中,自定义标签是一种扩展JSP功能的方法,它允许开发者封装复杂的逻辑或组件,以标签的形式...

    java自定义分页标签实现带条件的分页查询

    通过学习和理解这些代码,你可以更好地掌握自定义分页标签的实现方式,并将其应用于自己的项目中。 总结来说,自定义Java分页标签是一种高效的方法,可以让你在JSP中轻松实现带条件的分页查询。通过这种方式,你...

    自定义分页标签 Java

    本文将深入探讨如何在Java环境中自定义分页标签,以及涉及到的相关技术点。 首先,我们需要理解分页的基本原理。分页通常由两个主要部分组成:前端展示和后端处理。前端负责展示分页导航,如当前页、总页数、页码等...

    jsp自定义分页标签

    本资源提供的就是一个自定义分页标签的例子,它可以帮助我们更便捷地在页面上实现数据的分页显示。 分页是大型Web应用中常见的功能,特别是在处理大量数据时,如电商网站的产品列表、论坛的帖子等。自定义分页标签...

    一个功能强大的自定义分页标签

    总的来说,自定义分页标签提供了一种强大且灵活的方法,使Java开发者能够以声明式的方式处理分页,避免在每个页面都编写重复的分页逻辑。这样的自定义标签可以极大地提高代码的可读性和可维护性,是构建复杂Web应用...

    自定义页面分页标签自定义页面分页标签

    通过查看和运行这个项目,你可以更深入地理解自定义分页标签的实现细节。 总的来说,自定义页面分页标签涉及到前端界面设计、交互逻辑、后端接口设计等多个方面,是提高用户体验和网站性能的重要手段。掌握这些知识...

    Struts2自定义分页标签

    本资源详细介绍了如何在Struts2中自定义分页标签,使得开发过程更加便捷。 在Struts2中,分页通常涉及到以下几个关键步骤: 1. **创建Action类**:首先,你需要创建一个Action类,该类将处理用户的请求,包括获取...

    java自定义标签java自定义标签java自定义标签

    在提供的压缩文件中,`pagesetDemo.rar`可能包含了一个分页标签库的示例,`PagerTag2[1].0.rar`可能是另一个版本的分页标签实现,而`MaoTag.rar`可能是一个自定义的标签库,可能包含了一些与特定功能相关的自定义...

    自定义分页标签源代码

    本自定义分页标签源代码提供了一种解决方案,它独立于数据库操作,仅处理分页逻辑,允许开发者专注于数据获取和展示。接下来,我们将详细讨论相关知识点。 1. **自定义标签**: 自定义标签是JSP中的一种特性,允许...

    java自定义标签 分页标签 whaosoft 143zh

    `pagesetDemo`这个文件名可能是示例项目的名称,里面包含了使用这个自定义分页标签的演示代码。 创建Java自定义标签通常包括以下几个步骤: 1. **定义标签处理类**:这是自定义标签的核心,需要继承`javax.servlet...

    jsp java自定义标签 分页 当前位置 循环遍历数据

    例如,对于分页标签,我们可能有`pageSize`和`currentPage`等属性,而在`jspTld`文件中,我们将为这些属性指定对应的Java类型和默认值。 总的来说,通过结合JSP和Java自定义标签,我们可以构建高度定制的、可复用的...

Global site tag (gtag.js) - Google Analytics