动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > JSP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ JSP技巧 ]的信息

本月文章推荐
.Servlet动态产生JPEG图像的例子.
.JSP和Struts解决用户退出问题.
.JSP中表单数据存储的一种通用方法.
.Jdbc连Sybase数据库的几种方法.
.一个非常简单的分页技术MYSQL+JS.
.页面乱码解决4种方案.
.JS+JSP+JAVABEAN树型列表的实现.
.深入讲解提升JSP应用程序的七个实.
.JSP登录验证功能的实现.
.在jsp环境中配置使用fckeditor.
.解决JSP中使用request乱码问题.
.windows中双击jar文件即可运行写.
.JSP通过JDBC与Oracle相连.
.Jsp结合XML+XSLT将输出转换为Htm.
.JSP中可能会碰到的问题解答.
.如何使用JSP访问MySQL数据库.
.关于Tomcat与MySQL连接池问题的详.
.JSP避免Form重复提交的三种方案.
.用JSP实现DOS形式缓冲网页.
.用js绘图.

jsp 自定义分页标签

发表日期:2007-1-31 |


花了一上午简单研究了下自定义标签。就弄了个自定义的分页标签。代码没有怎么仔细优化。先贴上来,:)

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&&i < 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>
    <!--OutputTag-->
    <tag>
        <name>out</name>
        <tag-class>cn.cityyouth.util.NumenTag</tag-class>
        <body-content>empty</body-content>
        <attribute>
            <name>url</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>result</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <name>params</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

 

3.js

<%@ page contentType="text/html; charset=utf-8"%>
<%@ include file="/common/taglibs.jsp"%>
<%@ taglib  uri="/WEB-INF/numentag.tld"  prefix="n"%>
<html>
<head>
</head>
<body>
<table>
<tr><td>
<n:out url="test.do" result="result" params="${type}"/>
</td></tr>
</table>
</body>
</html>
http://blog.csdn.net/numen_wlm/archive/2007/01/30/1497778.aspx

上一篇:全面解析JSP,servlet的配置 人气:4387
下一篇:JSP自定义标签试验 人气:6965
浏览全部jsp的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-11-20 ECShop v2.6.1 GBK 正式版
2008-11-20 免费时代CMS v5.1
2008-11-20 ECShop v2.6.1 UTF-8 正式版
2008-11-20 雷风影视系统asp版 v1.0.1
2008-11-20 雷风影视系统php版 v1.0.1
2008-11-20 未知数网络文章系统HTML版
2008-11-20 云峰合同管理系统ASP+AJAX版
2008-11-20 翎风个人主页管理系统 v1.0
2008-11-20 开良美女图片小偷 v1.3
2008-11-15 BitTorrent 6.1.2 Build 13185
2008-11-15 BitComet 1.06
2008-11-15 SpeedFan 4.36 Final
2008-11-15 Windows Installer CleanUp Util
2008-11-15 Safari 3.2
2008-11-15 RealPlayer 11.0.0.835 简体中文
2008-11-15 QQ for Mac Preview 3 Build 394
2008-11-15 Vista优化大师3.20
2008-11-15 酷点 CoolDock 0.6
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成