- 浏览: 96993 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
抓不住的风316:
谢谢你的想法 让我从牛角尖中退了出来呵呵
超鏈接點擊次數的統計方法(超簡單) -
白色蜻蜓:
真是强人儿
UC++學習筆記代碼 -
myhongkongzhen:
RT kettas我這裡試驗室成功的,之前也是看了好多文章試驗 ...
win7下vm中linux網絡共享設置 -
kettas:
见过了,没有用过不晓得行不行。
win7下vm中linux網絡共享設置 -
lutian1984:
写的什么啊!有没有点正常人能看懂的东西啊
Struts2 + Pluto + portletV1.0(JSR 168) CRUD Demo
2009年5月9号 星期六 天气晴
以下是应用JSP标签实现的WEB应用的分页功能的代码
核心代码如下:
Tag代码:
package g.cms.web.tag; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.BodyTagSupport; /** * @author Jane(吴贞贞) * @email myhongkongzhen@gmail.com * @since JDK 1.6 * @alter 2009年5月9号 * @version 1.0 2009年3月**号 */ public class PageForCMSTag2 extends BodyTagSupport { private static final long serialVersionUID = -4247241487535299862L; private String indexColor = ""; private String countColor = ""; // private String navigationUrl = ""; private int pageSize = 10;// 每页显示记录个数 private int pageIndex = 0; private String action;// 请求路径 // private int pageCount; // 自定义参数 // private String params = ""; public String getAction() { return action; } public void setAction(String action) { this.action = action; } /** * getPageCount()返回总页数 */ protected int getPageCount() { return getRecordCount() % getPageSize() != 0 ? (getRecordCount() / getPageSize()) + 1 : (getRecordCount() / getPageSize()); } public int getPageIndex() { String pi = this.pageContext.getRequest().getParameter("pageIndex"); if (null == pi || ("").equals(pi.trim())) { pageIndex = 0; } else { pageIndex = Integer.parseInt(pi); } return pageIndex; } public void setPageIndex(int pageIndex) { this.pageIndex = pageIndex; } private void firstPage(JspWriter out) throws IOException { if (getPageIndex() == 0) { out.println("<span>[首页]</span>"); } else { out.println("<a href='" + goToPageURI(0) + "'>[首页]</a>"); } } private void lastPage(JspWriter out) throws IOException { if (getPageIndex() == getPageCount() - 1) { out.println("<span>[末页]</span>"); } else { out.println("<a href='" + goToPageURI(getPageCount() - 1) + "'>[末页]</a>"); } } private void previousPage(JspWriter out) throws IOException { if (getPageIndex() < 1) { out.println("<span>[上一页]</span>"); } else { out.println("<a href='" + goToPageURI(getPageIndex() - 1) + "'>[上一页]</a>"); } } private void nextPage(JspWriter out) throws IOException { if (getPageIndex() >= getPageCount() - 1) { out.println("<span>[下一页]</span>"); } else { out.println("<a href='" + goToPageURI(getPageIndex() + 1) + "'>[下一页]</a>"); } } @Override public int doStartTag() throws JspException { // 获取url // 设置显示页数的颜色 getColor(); StringBuffer strb = new StringBuffer(); JspWriter out = pageContext.getOut(); try { // 分页 int front = getPageIndex() - 5; // 前面一截 int back = getPageIndex() + 5; // 后面一截 out.println("共" + getPageCount() + "页 "); out.println("当前第 <font color=" + indexColor + ">" + (getPageIndex() + 1) + "</font>页"); firstPage(out); previousPage(out); if (getPageIndex() < 5) // 如果索引在前5页 { if (getPageCount() <= 10) // 总页数不够10页 { for (int i = 0; i < getPageCount(); i++) { if (i == getPageIndex()) strb.append(" " + (getPageIndex() + 1) + " "); else strb.append("<a href=" + goToPageURI(i) + ">[" + (i + 1) + "]</a>"); } } else { for (int i = 0; i < 9; i++) { if (i == getPageIndex()) strb.append(" " + (getPageIndex() + 1) + " "); else strb.append("<a href=" + goToPageURI(i) + ">[" + (i + 1) + "]</a>"); } } } else { if (front >= 1) { for (int i = 4; i > 0; i--) strb.append("<a href=" + goToPageURI(getPageIndex() - i) + ">[" + (getPageIndex() - (i - 1)) + "]</a>"); } else { for (int i = 1; i < getPageIndex(); i++) strb.append("<a href=" + goToPageURI(i) + ">[" + (i + 1) + "]</a>"); } strb.append(" " + (getPageIndex() + 1) + " "); // 分界线 eg: 5 // // ,前面一截就是1234,后面一截就是6789 if (back <= getPageCount()) { for (int i = 0; i < 4; i++) strb.append("<a href=" + goToPageURI(getPageIndex() + i + 1) + ">[" + (getPageIndex() + (i + 1) + 1) + "]</a>"); } else { for (int i = 0; i < getPageCount() - getPageIndex() - 1; i++) strb.append("<a href=" + goToPageURI(getPageIndex() + i + 1) + ">[" + (getPageIndex() + (i + 1) + 1) + "]</a>"); } } out.println(strb.toString()); nextPage(out); lastPage(out); } catch (IOException e) { e.printStackTrace(); } return EVAL_PAGE; } /** * @param page * :跳转到的页码 */ protected String goToPageURI(int page) { String requestPath = ((HttpServletRequest) pageContext.getRequest()) .getRequestURI(); String rp = null; String tid = (String) ((HttpServletRequest) pageContext.getRequest()) .getParameter("typeid"); if (null != tid && !"".equals(tid)) { Integer typeid = Integer.parseInt(tid); if (null == action) { rp = requestPath + (requestPath.lastIndexOf("?") == -1 ? "?" : "&") + "pageIndex=" + page + "&pageSize=" + getPageSize() + "&recordCount=" + getRecordCount() + "&typeid=" + typeid + "&typeid2=" + typeid; } else { rp = requestPath + action + (action.lastIndexOf("?") == -1 ? "?" : "&") + "pageIndex=" + page + "&pageSize=" + getPageSize() + "&recordCount=" + getRecordCount() + "&typeid=" + typeid + "&typeid2=" + typeid; } } else { if (null == action) { rp = requestPath + (requestPath.lastIndexOf("?") == -1 ? "?" : "&") + "pageIndex=" + page + "&pageSize=" + getPageSize() + "&recordCount=" + getRecordCount(); } else { rp = requestPath + action + (action.lastIndexOf("?") == -1 ? "?" : "&") + "pageIndex=" + page + "&pageSize=" + getPageSize() + "&recordCount=" + getRecordCount(); } } return rp; } private void getColor() { if (indexColor.equals("")) indexColor = "red"; if (countColor.equals("")) countColor = "blue"; } 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 int getPageSize() { String ps = this.pageContext.getRequest().getParameter("pageSize"); if (null == ps || "".equals(ps)) { pageSize = 20; } else { pageSize = Integer.parseInt(ps); } return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } private int recordCount;// 总记录个数 private List<?> list; public List<?> getList() { List<?> l = (List<?>) this.pageContext.getRequest().getAttribute( "listPage"); if (null == l || l.size() == 0) { return new ArrayList(); } else { return l; } } public void setList(List<?> list) { this.list = list; } public int getRecordCount() { return getList().size(); } public void setRecordCount(int recordCount) { this.recordCount = recordCount; } }
================================我是分割线============================
TLD标签定义代码:
<tag> <name>PageForCMSTag2</name> <tag-class>g.cms.web.tag.PageForCMSTag2</tag-class> <body-content>jsp</body-content> <attribute> <name>pageIndex</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <type>int</type> <description>当前的页数</description> </attribute> <attribute> <name>pageCount</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <description>总页数</description> </attribute> <attribute> <name>pageSize</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <description>URL</description> </attribute> <attribute> <name>action</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>
===============================我是分割线============================
效果图如下:
发表评论
-
substring与split的效率问题
2014-07-04 16:21 1895/** * demo */ package dem ... -
JAVA內存引用的理解
2012-06-19 10:12 7642012年6月19日10:08:02 源碼: ... -
對JAVA引用的一點理解
2012-05-31 23:14 8022012年5月31日23:06:13 ... -
List、Set等類存儲JavaBean的簡單排序實現
2010-06-12 09:44 1112列表排序常用操作: 1、Model類 implements ... -
TOMCAT配置文件配置字符編碼
2010-01-19 15:23 2660TOMCAT配置文件配置字符編碼 總是忘記這兩個參數, ... -
struts2得到request對象
2009-12-23 11:25 9732009年12月23號 週三 天氣晴 struts2得 ... -
JDBC鏈接access數據庫不同機器配置產生亂碼解決方案
2009-09-28 16:54 11942009年9月28號 天氣小雨 週一 JDBC鏈接 ... -
超鏈接點擊次數的統計方法(超簡單)
2009-08-25 11:24 63562009年8月25號 天氣晴 週二 今天一個靈感, ... -
带有checkbox的TREE列表级联的选择子栏目的JAVA标签形式的实现
2009-05-10 12:32 30042009年5月10号 天气晴 星期日 ... -
ACCESS数据库资源导入到ORACLE数据库表中的实现
2009-05-08 11:33 16052009年5月8号 天气晴 星期五 以下 ... -
根据 crazycode的建议,修改通过IP控制权限访问网站的部分代码
2009-05-07 18:43 11932009年5月7号 根据crazycode前辈的 ... -
网站访问通过IP(段)作为限制条件的实现方法
2009-05-07 16:32 45442009年5月7号 星期四 天气晴 ... -
nutch搜索引擎windows版本,包含中文分词技术
2009-05-05 11:40 33412009年5月5日 星 ...
相关推荐
本项目是一个基于Java实现的类似百度分页功能的小程序,它结合了数据库操作,提供了完整的分页解决方案。在这个Demo中,我们可以学习到以下几个关键知识点: 1. **JDBC(Java Database Connectivity)**:Java访问...
在这个主题中,我们将深入探讨如何使用Java Server Pages(JSP)技术来实现类似百度或Google的高效、美观的分页功能。这通常涉及到与后端Servlet的交互,以获取并展示所需的数据。 首先,我们需要了解JSP的基本原理...
Java自定义分页标签是Java Web开发中一种高效、可复用的方法,它允许开发者创建自己的标签库,用于处理分页逻辑,提高代码的可读性和可维护性。本篇文章将详细探讨如何在Java中实现一个自定义分页标签。 首先,理解...
在这个场景中,我们提到的是使用自定义标签实现类似于百度分页的效果,这是一种常见的用户体验优化策略。百度的分页设计简洁明了,易于用户操作,因此在Web应用中广泛模仿。 首先,让我们了解一下Struts2框架。...
Java仿百度分页是一种常见的网页分页实现方式,它的核心思想是通过自定义标签库(JSP Tag Library)和Java后端代码配合,提供一种简洁、高效的分页展示方案。百度分页的设计考虑了用户体验和易用性,使得在大量数据...
本文将深入探讨如何使用JavaScript和jQuery实现一个类似百度、谷歌的智能分页解决方案,解决分页数量过多导致用户界面拥挤的问题。 首先,我们需要理解分页的基本原理。分页通常涉及到两个关键参数:每页显示的条目...
本知识点主要围绕“类似淘宝、百度、谷歌的通用分页”进行详细讲解。 首先,通用分页意味着该分页解决方案可以适用于多种数据库系统,例如Oracle、MSSQL2000和MySQL。Oracle是企业级的关系型数据库管理系统,广泛...
本项目"仿百度分页jsp版"是一个基于Maven构建的Java Web应用,其目标是实现与百度网站类似的分页效果。下面将详细介绍该项目涉及的关键知识点。 首先,**分页** 是网页设计中的一种策略,它将大量数据分割成多个小...
在IT行业中,构建类似谷歌地图或百度地图的网页地图效果是一项常见的需求,这涉及到WebGIS(Web地理信息系统)技术的应用。本项目名为"MyMaps.rar",显然是一个包含资源的压缩包,旨在帮助开发者实现这样的功能。...
总结,"类似百度地图的Java实现"项目综合运用了Java编程、SSH框架、百度地图API、数据库设计、前端技术、路线规划算法等多个IT领域的知识,旨在创建一个能够显示公交路线并提供换乘建议的实用工具。这个项目不仅提升...
在Java编程中,模拟百度分页是一个常见的需求,特别是在处理大量数据时,为了提高用户体验,我们需要将结果分批次展示,这就是分页的核心理念。在这个场景中,`BaiDuDdividePage.java` 文件很可能是实现这个功能的一...
本篇文章将详细讲解一个类似百度的分页工具类,以及如何将其应用于Hibernate分页,同时结合EL表达式和Struts2标签进行页面分页。 首先,"类似百度的分页工具类"是指设计一个具有类似百度搜索结果分页功能的Java类。...
首先,"仿谷歌分页"和"放百度分页"这两个标签暗示了我们可能会参考这两种著名搜索引擎的分页设计。谷歌和百度的分页通常简洁明了,不仅提供上一页、下一页的导航,还可能包含跳转至特定页码的功能。这种设计使得用户...
本示例聚焦于使用JSP(Java Server Pages)来实现类似百度和谷歌的分页功能。下面将详细解释如何通过JSP来创建这种功能,以及涉及到的关键知识点。 首先,我们要理解JSP的基础。JSP是一种基于Java的服务器端脚本...
在Java中实现类似百度文库的功能,主要是为了提供在线阅读文档的能力,支持doc和pdf格式。这一过程涉及到多个步骤,包括文件的转换和展示。下面将详细介绍这些关键知识点。 首先,我们需要处理的是文件的转换。在...
【标题】"基于javaweb的仿照百度网盘做的小型云盘系统"是一个使用Java Web技术实现的项目,旨在模仿百度网盘的功能,提供个人或小团队的在线存储服务。这个系统可能包括了文件上传、下载、分享、管理等功能,用户...
标题与描述中的“仿百度分页代码 谷歌分页代码”主要涉及的是网站开发中常见的分页功能实现。在大数据量的处理场景下,为了提升用户体验和服务器性能,分页显示数据成为了一种常见且必要的技术手段。本文将详细解析...
"java实现类似百度文库预览pdf功能文档" Java实现类似百度文库预览PDF功能文档是指使用Java语言实现文档在线预览功能,类似于百度文库的预览功能。该功能可以将各种类型的文档(如Txt、Word、Excel、PPT等)转换为...
其中google和baidu搜索采用http请求实现,bing使用bing java sdk实现。bing搜索需要一个微软的appid,可以用我的,也可以自己去免费申请。bing会限制每个appid的每天查询次数。 google和baidu的结果很好,bing的...
"asp 数字分页 仿百度分页 仿谷歌分页"这个项目的目标是实现一个与百度和谷歌分页样式类似的分页功能,同时具备数据库连接能力。 首先,我们来看`index.asp`,这是网站的主入口文件,通常包含了整个应用的逻辑控制...