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

JAVA自定义分页标签类

阅读更多
 

1,标签的实现类NumenTag.java

 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

/** *//**
 * 自定义的分页标签
 * 
 * 
@author 马万林
 * 
 
*/

public class NumenTag extends TagSupport {

    
private String url = null;

    
private Result result;

    
private String page = null;

    
private String[] p;

    
private Map kv = new HashMap();

    
private List key = null;

    
/** *//**
     * 分离参数
     * 
@param params
     
*/

    
public void setParams(String params) {
        key 
= new ArrayList();
        p 
= params.split(";");
        
for (int i = 0; p.length>1&&< p.length; i++{
            kv.put(p[i].split(
":")[0], p[i].split(":")[1]);
            key.add(p[i].split(
":")[0]);
        }

    }


    
/** *//**
     * 分页的结果
     * 
@param result
     
*/

    
public void setResult(String result) {
        
this.result = (Result) pageContext.getRequest().getAttribute("result");
        
this.page = (String) pageContext.getRequest().getAttribute("page");
    }


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


    
public int doStartTag() throws JspException {
        StringBuffer sb 
= null;
        
if (result != null && result.getContent() != null
                
&& result.getContent().size() > 0{
            sb 
= new StringBuffer("分页: ");
            
if (result.getPage().getHasPrePage()){
                sb.append(
"<a href='").append(url);
                
if (url.indexOf("?"== -1)
                    sb.append(
"?page=1");
                
else
                    sb.append(
"&page=1");
                linkParams(sb);
                sb.append(
"'>").append("首页").append("</a>").append(" | ");
                sb.append(
"<a href='").append(url);
                
if (url.indexOf("?"== -1)
                    sb.append(
"?page=").append(
                            result.getPage().getPreviousPage());
                
else
                    sb.append(
"&page=").append(
                            result.getPage().getPreviousPage());
                linkParams(sb);
                sb.append(
"'>").append("上页").append("</a>").append(" | ");
            }

            
if (result.getPage().getHasNextPage()) {
                sb.append(
"<a href='").append(url);
                
if (url.indexOf("?"== -1)
                    sb.append(
"?page=").append(result.getPage().getNextPage());
                
else
                    sb.append(
"&page=").append(result.getPage().getNextPage());
                linkParams(sb);
                sb.append(
"'>").append("下页").append("</a>").append(" | ");
                sb.append(
"<a href='").append(url);
                
if (url.indexOf("?"== -1)
                    sb.append(
"?page=").append(result.getPage().getTotalPage());
                
else
                    sb.append(
"&page=").append(result.getPage().getTotalPage());
                linkParams(sb);
                sb.append(
"'>").append("尾页").append("</a>");
            }

            sb
                    .append(
" 跳转到:<select name='goToPage' onchange='javascript:goPage(this.value)'>");
            
int s = result.getPage().getTotalCount();
            
for (int i = 1; i <= s; i++{
                sb.append(
"<option value=").append(i);
                
if (Integer.parseInt(page) == i)
                    sb.append(
" selected");
                sb.append(
">第").append(i).append("页</option>");
            }

            sb.append(
"</select>");
            sb.append(
"<script language=javascript>");
            sb.append(
"function goPage(page){").append("window.location='")
                    .append(url);
            
if (url.indexOf("?"== -1)
                sb.append(
"?page='+").append("page");
            
else
                sb.append(
"&page='+").append("page");
            sb.append(
"+'");
            linkParams(sb);
            sb.append(
"';");
            sb.append(
"}");
            sb.append(
"</script>");
        }

        
try {
            
if (sb != null{
                JspWriter out 
= pageContext.getOut();
                out.print(sb);
            }

        }
 catch (Exception e) {
            
throw new JspException(e);
        }

        
return EVAL_PAGE;
    }

    
    
/** *//**
     * 链接参数处理
     * 
@param sb
     
*/

    
private void linkParams(StringBuffer sb) {
        
for (int i = 0; i < key.size(); i++{
            sb.append(
"&").append(key.get(i)).append("=").append(
                    kv.get(key.get(i)));
        }

    }


}

 

2,标签定义文件numentag.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>
    
<tlib-version>1.0</tlib-version>
    
<jsp-version>1.2</jsp-version>
    
<short-name>numen</short-name
分享到:
评论
1 楼 lqugen 2007-07-21  
fdsaffdsaf

相关推荐

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

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

    java自定义分页标签

    在Java开发中,自定义分页标签是一种常见的需求,它能帮助我们构建用户友好的界面,使得大量数据的展示变得更加高效和便捷。本教程将详细讲解如何创建和使用自定义分页标签,以及如何实现淘宝购物分页标签的样式。 ...

    自定义分页标签 Java

    总结来说,自定义分页标签Java涉及到的知识点包括JSP标签库的创建、Java标签处理类的编写、数据库交互与SQL操作、请求参数处理、数据模型的设计以及优化策略。通过熟练掌握这些知识点,开发者可以构建出高效、灵活的...

    Java自定义分页标签

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

    jsp自定义分页标签

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

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

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

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

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

    Struts2自定义分页标签

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

    java自定义标签分页

    "自定义标签分页用法.png"和"自定义标签分页用法(带伪).png"提供了图形化的说明,展示了如何在JSP页面中使用这个分页标签。这些图片可能包含了标签的语法示例,如`&lt;fenye:pagination ... /&gt;`,以及如何传递参数,...

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

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

    自定义分页标签源代码

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

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

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

    java企业项目开发中的自定义分页标签

    总的来说,自定义分页标签在Java企业项目中起到了关键作用,它提高了代码的可读性和可维护性,同时也简化了页面展示的复杂性。通过SSH框架的整合和自定义标签的实现,开发者可以更高效地处理大规模数据的分页展示。

    非常好用的自定义分页标签

    在IT行业中,自定义分页标签是Web应用开发中常用的一种技术,特别是在Java Web开发领域。自定义标签(Custom Tags)允许开发者创建自己的HTML标签,这些标签可以封装复杂的逻辑,提高代码的可读性和可维护性。在这个...

Global site tag (gtag.js) - Google Analytics