- 浏览: 410266 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wcjagta:
...
dedecms插件开发教程 -
xc2013:
看起来不错 先下载来试试
ECSHOP完全静态化解决方法 -
greemranqq:
你好,我在xp 上做实验,也是JS css带不过来,关于 ro ...
nginx资源定向 css js路径问题 -
hotsmile:
表结构给出来吧,测试的提示说要注册,
中国移动CMPP短信开发平台通讯包 2.8 -
mengdejun:
gang80306176 写道这个插件怎么用和安装普通插件一样 ...
phpcms2008 sp4单网页编辑器插件
package org.whvcse.common; import java.io.Serializable; /** * @desc 分页容器类 * @author mengdejun */ public class Page implements Serializable { private static final long serialVersionUID = 1L; private int allPage = 0;//总页数 private int allRecords = 0;//总记录 private int currentPage = 1;//当前页 private String link = null;//链接信息 private int perRecords = 5;//显示条数 public int getAllPage() { return allPage; } public int getAllRecords() { return allRecords; } public int getCurrentPage() { return currentPage; } /** * * @return 容器索引结束坐标 */ public int getEndIndex() { return ((this.currentPage - 1) * this.perRecords + this.perRecords > this.allRecords) ? this.allRecords : (this.currentPage - 1) * this.perRecords + this.perRecords; } public String getLink() { return link; } public int getPerRecords() { return perRecords; } /** * * @return 容器索引开始坐标 */ public int getStartIndex() { return (this.currentPage - 1) * this.perRecords; } public boolean hasNext() { return this.currentPage < this.allPage; } public boolean hasPrevious() { return this.currentPage > 1; } public void setAllPage(int allPage) { this.allPage = (allPage % this.perRecords == 0) ? (allPage / this.perRecords) : (allPage / this.perRecords + 1); } public void setAllRecords(int allRecords) { this.allRecords = allRecords; } public void setCurrentPage(int currentPage) { if (currentPage < 1) this.currentPage = 1; else if (currentPage > this.allPage) this.currentPage = this.allPage; else this.currentPage = currentPage; } public void setCurrentPage(String currentPage) { if (null == currentPage || currentPage.equals("")) currentPage = "1"; try { this.setCurrentPage(Integer.parseInt(currentPage)); } catch (NumberFormatException e) { this.currentPage = 1; } } public void setLink(String link) { this.link = link; } public void setPerRecords(int perRecords) { this.perRecords = perRecords; } public void setPerRecords(String perRecords) { try { this.perRecords = Integer.parseInt(perRecords); } catch (NumberFormatException e) { this.perRecords = 5; } } }
package org.whvcse.ext; import java.io.Serializable; import javax.servlet.ServletRequest; import org.whvcse.common.Page; /** * @desc 标签生成器接口 拓展生成器需实现该接口并返回链接字符串 * @author mengdejun */ public interface LinkHandler extends Serializable { /** * * @param page 分页类信息 * @param request httpServletRequest对象封装 * @param format 链接信息格式化 * @param param 当前分页标签变量 * @return 链接字符串 * @throws NullPointerException */ public String parse(Page page,ServletRequest request,String format,String param) throws NullPointerException; }
package org.whvcse.ext.link; import javax.servlet.ServletRequest; import org.whvcse.common.Page; import org.whvcse.ext.LinkHandler; /** * @desc 默认链接生成器,该类需自己扩展以实现自己的样式,需实现LinkHandler接口,自定义时候请在标签cls属性填入类的全名 * @author mengdejun */ public class GeneralLinkHandler implements LinkHandler { private static final long serialVersionUID = 1L; public String parse(Page page,ServletRequest request,String format,String param) throws NullPointerException { String returnStr="共"+page.getAllPage()+"页,第"+page.getCurrentPage()+"页 "; for(int i=1;i<=page.getAllPage();i++) { returnStr+="<a href=index.jsp?"+param+"="+i+">"+i+"</a> "; } return returnStr; } }
package org.whvcse.page; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; import org.whvcse.ext.LinkHandler; public class TagLink extends TagSupport { private static final long serialVersionUID = 1L; private TagPage page=null;//父容器 private String format="共{allPage},第{currentPage}";//链接格式,可自定义 private LinkHandler handler=null;//链接处理类 private String var=null;//返回信息 private String cls="org.whvcse.ext.link.GeneralLinkHandler";//默认链接类 @SuppressWarnings({ "static-access", "unchecked" }) @Override public int doEndTag() throws JspException { //获取父容器标签对象 this.page=(TagPage) this.findAncestorWithClass(this,TagPage.class); JspWriter out=this.pageContext.getOut(); try { Class c = Class.forName(this.cls);//插件设置,加载自定义插件类 this.handler=(LinkHandler) c.newInstance(); String temp=this.handler.parse(this.page.getPage(),pageContext.getRequest(),this.format,this.page.getParam()); if(null==this.var) { out.println(temp); } else { this.pageContext.setAttribute(this.var,temp,this.page.getScope(this.page.getScope())); } } catch (ClassNotFoundException e1) { e1.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return EVAL_PAGE; } public String getFormat() { return format; } public void setFormat(String format) { this.format = format; } public String getCls() { return cls; } public void setCls(String cls) { this.cls = cls; } public String getVar() { return var; } public void setVar(String var) { this.var = var; } }
package org.whvcse.page; import java.util.List; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import org.whvcse.common.Page; public class TagPage extends BodyTagSupport { private static final long serialVersionUID = 1L; private String id=null;//数据源ID private String target=null;//目标源,处理后的链表 private String scope=null;//变量作用域 private String param=null;//当前页标签变量 @SuppressWarnings("unchecked") private List list=null; private Page page=null;//分页类 private String rows="5";//显示行数 public TagPage() { this.scope="request"; this.param="page"; this.target="pageData"; } @Override public int doEndTag() throws JspException { super.pageContext.removeAttribute(this.id, this.getScope(this.scope)); return EVAL_PAGE; } @SuppressWarnings("unchecked") @Override public int doStartTag() throws JspException { this.list=(List) super.pageContext.getAttribute(this.id,this.getScope(this.scope)); this.page=new Page(); this.page.setAllRecords(this.list.size()); this.page.setPerRecords(this.rows); this.page.setAllPage(this.list.size()); String start=super.pageContext.getRequest().getParameter(this.param); this.page.setCurrentPage(start); this.list=this.list.subList(this.page.getStartIndex(),this.page.getEndIndex()); super.pageContext.setAttribute(this.target, this.list, this.getScope(this.scope)); return EVAL_BODY_INCLUDE; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTarget() { return target; } public void setTarget(String target) { this.target = target; } public String getScope() { return scope; } public void setScope(String scope) { this.scope = scope; } public String getParam() { return param; } public void setParam(String param) { this.param = param; } @SuppressWarnings("static-access") public int getScope(String scope) { if(scope.equals("request")||scope.equals("REQUEST")||scope.equals("r"))return super.pageContext.REQUEST_SCOPE; if(scope.equals("session")||scope.equals("SESSION")||scope.equals("s"))return super.pageContext.SESSION_SCOPE; if(scope.equals("application")||scope.equals("APPLICATION")||scope.equals("a"))return super.pageContext.APPLICATION_SCOPE; if(scope.equals("page")||scope.equals("PAGE")||scope.equals("p"))return super.pageContext.PAGE_SCOPE; return super.pageContext.REQUEST_SCOPE; } public String getRows() { return rows; } public void setRows(String rows) { this.rows = rows; } public Page getPage() { return page; } }
<?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.3</tlib-version> <jsp-version>1.2</jsp-version> <short-name>whvcse</short-name> <uri>http://mengdejun.iteye.com</uri> <tag> <name>page</name> <tag-class>org.whvcse.page.TagPage</tag-class> <body-content>JSP</body-content> <description/> <attribute> <name>scope</name> <rtexprvalue>true</rtexprvalue> <description> 分页类 </description> </attribute> <attribute> <name>param</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <description> 页码 </description> </attribute> <attribute> <name>rows</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <description> 显示行数 </description> </attribute> <attribute> <name>id</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <description> 变量列表 </description> </attribute> <attribute> <name>target</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <description> 别名 </description> </attribute> </tag> <tag> <name>pageLink</name> <tag-class>org.whvcse.page.TagLink</tag-class> <body-content>empty</body-content> <description/> <attribute> <name>format</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <description> 链接信息 </description> </attribute> <attribute> <name>cls</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <description> 扩展信息,实现LinkHandler接口 </description> </attribute> <attribute> <name>var</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <description> 该属性将不输出分页信息,将信息赋给var变量 </description> </attribute> </tag> </taglib>
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%@ taglib prefix="whvcse" uri="http://mengdejun.iteye.com"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>分页标签实例</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <% List a=new ArrayList(); for(int i=1;i<=50;i++) { a.add(i); request.setAttribute("list",a); } %> <body> <whvcse:page id="list" target="olist" scope='request' rows='10'><!-- 分类标签 --> <% List o=(List)request.getAttribute("olist"); for(int i=0;i<o.size();i++) { out.print(o.get(i)+"<br/>"); } %> <whvcse:pageLink/> </whvcse:page> </body> </html>
- pager_demo.rar (14.6 KB)
- 下载次数: 28
- page_jsp_tag.jar (12.4 KB)
- 下载次数: 22
发表评论
-
java实现msn机器人 jml
2011-05-05 19:27 1599import net.sf.jml.MsnContact; ... -
使用LumaQQ来开发QQ机器人
2011-05-04 09:25 1818自从博客园闪存发布了Q ... -
Java 本地接口规范
2011-04-16 23:04 1201JNI是Java Native Interface的缩写,中 ... -
java 和 C++ Socket通信(java作为服务端server,C++作为客户端client,解决中文乱码问题GBK和UTF8)
2011-04-16 22:47 3630代码: http://files.cnblogs.com/ ... -
中国移动CMPP短信开发平台通讯包 2.8
2011-04-16 21:53 2720[size=x-small;]1 软件完全用JAVA开发,便于 ... -
HTML解析器 jsoup
2011-04-11 16:20 1038jsoup 是一款 Java 的HTML 解析器,可直接解析某 ... -
一个简单的文字加密解密类
2011-04-11 14:09 1218我们玩游戏神马的,在安装文件夹里或许会有一些TXT文件,但打开 ... -
谷歌遭甲骨文死磕 高斯林或成救世主?
2011-04-06 09:59 906被誉为Java之父的James Gosling,在从甲骨文高调 ... -
Jigloo
2011-03-25 19:13 1078Jigloo Jigloo 是一个 Eclipse ... -
基于java的网络抓包技术研究与实现
2011-03-25 18:57 1647一、实验内容描述本 ... -
Eclipse全屏插件
2011-03-21 21:55 1031下载地址 -
java之数据库缓存
2010-10-27 18:57 1735import java.io.File; import ja ... -
java 字体对话框
2010-10-21 20:30 1284package org.whsvc.font; 武汉软件 ... -
java servlet生成html
2010-10-17 12:31 8274package com.html; import jav ... -
java下载程序
2010-09-12 18:00 2152import java.io.BufferedInputStr ... -
jsp 上传下载配置文件
2009-10-11 21:51 1795<?xml version="1.0" ... -
jsp 上传下载源代码
2009-10-11 21:48 2239package org.whvcse.upload.impl; ... -
java数据库连接池 V1.0
2009-10-11 21:37 2037package com.mdj.dmdatabase.test ... -
java 纯Socket发送邮件
2009-10-11 21:32 1531import java.io.*; import java. ... -
jdbc读写Excel源代码
2009-10-11 21:29 4266package com.mysql.odbc; import ...
相关推荐
Java分页标签是Java Web开发中的一个重要概念,它主要用于处理大量数据的展示,尤其是在数据库查询结果需要在网页上以多页形式呈现时。这个技术可以让用户更方便地浏览和导航大量的信息,而不会一次性加载所有数据...
例如,对于分页标签,我们可能有`pageSize`和`currentPage`等属性,而在`jspTld`文件中,我们将为这些属性指定对应的Java类型和默认值。 总的来说,通过结合JSP和Java自定义标签,我们可以构建高度定制的、可复用的...
本主题将深入探讨“jsp自定义分页标签”,这是一种在网页展示大量数据时非常实用的功能,它可以有效地帮助用户浏览和操作数据。 一、JSP自定义标签基础 JSP自定义标签是JSP技术的一部分,它允许开发者创建自己的...
总之,"java分页标签"是一个自定义的JSP标签库,旨在简化Java Web应用中的分页实现,提高开发效率,并提供良好的用户体验。通过理解上述核心概念,开发者可以更好地利用这样的分页工具,优化他们的Web应用。
本文将深入探讨“JAVA分页标签”,这是一种简化分页实现的机制。 一、什么是分页标签? 分页标签是Java服务器页面(JSP)中的一个组件,它允许开发者在JSP页面上方便地实现分页功能,而无需编写大量的HTML和...
本资源提供了一个非常好用的JSP分页标签,它简化了在JSP页面上实现分页的过程,无需编写过多的Java代码,只需在JSP页面上插入特定的标签即可。 1. **JSP分页标签**:JSP分页标签是一种预定义的、可重用的组件,可以...
Java分页标签是一种在Java Web开发中用于实现页面数据分页显示的技术,它极大地简化了开发者的工作,使得在网页上展示大量数据时可以方便地进行翻页操作。在这个"Java分页标签详细Demo"中,我们将深入探讨如何利用...
3. **使用JSP分页标签库** JSP标准标签库(JSTL)提供了`<c:forEach>`等标签,可以用来遍历分页数据。同时,还有一些第三方的分页标签库,如DisplayTag,提供了更丰富的分页功能,如排序、导出等。 4. **实例解析...
要创建一个分页标签,我们需要: 1. 定义标签接口:在TLD(Tag Library Descriptor)文件中声明自定义标签,包括标签名、属性、导出的Java类等信息。 2. 编写标签实现类:继承`BodyTagSupport`,并覆盖必要的方法,...
Java分页标签是一种在Web应用开发中常用的组件,主要用于处理大量数据的展示,避免一次性加载所有数据导致页面响应慢或内存消耗过大。本自制的Java分页标签通过两个关键参数——总页数和当前页数,实现了动态控制...
总结来说,Java分页标签提供了一种在JSP页面上方便地实现数据分页的方法。通过自定义标签,我们可以将分页逻辑封装起来,使得视图层代码更简洁,同时保持良好的可维护性。学习和掌握这一技术,对于提升Java Web应用...
"最好最好的java万能分页标签"可能是一个开源的Java分页组件,它的特点是简单易用。只需要导入对应的Jar包,然后在代码的五个关键位置进行配置,即可快速实现分页功能。这五个位置可能包括: 1. **配置文件**:在...
在Java开发中,自定义分页标签是一种常见的需求,它能帮助我们构建用户友好的界面,使得大量数据的展示变得更加高效和便捷。本教程将详细讲解如何创建和使用自定义分页标签,以及如何实现淘宝购物分页标签的样式。 ...
本主题主要围绕"jsp分页标签"和"Servlet技术实现"进行深入讲解。 首先,我们来看"jsp分页标签"。分页标签库如`DisplayTag`或`PagedListHolder`提供了一种声明式的方式来实现分页功能。这些标签库通过在JSP页面中...
总结来说,自定义Java分页标签是一种高效的方法,可以让你在JSP中轻松实现带条件的分页查询。通过这种方式,你可以灵活地控制查询逻辑,同时保持视图层的清晰和简洁,提升代码的可维护性和复用性。