- 浏览: 93885 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
抓不住的风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 1824/** * demo */ package dem ... -
JAVA內存引用的理解
2012-06-19 10:12 7212012年6月19日10:08:02 源碼: ... -
對JAVA引用的一點理解
2012-05-31 23:14 7632012年5月31日23:06:13 ... -
List、Set等類存儲JavaBean的簡單排序實現
2010-06-12 09:44 1061列表排序常用操作: 1、Model類 implements ... -
TOMCAT配置文件配置字符編碼
2010-01-19 15:23 2611TOMCAT配置文件配置字符編碼 總是忘記這兩個參數, ... -
struts2得到request對象
2009-12-23 11:25 9312009年12月23號 週三 天氣晴 struts2得 ... -
JDBC鏈接access數據庫不同機器配置產生亂碼解決方案
2009-09-28 16:54 11452009年9月28號 天氣小雨 週一 JDBC鏈接 ... -
超鏈接點擊次數的統計方法(超簡單)
2009-08-25 11:24 63142009年8月25號 天氣晴 週二 今天一個靈感, ... -
带有checkbox的TREE列表级联的选择子栏目的JAVA标签形式的实现
2009-05-10 12:32 29372009年5月10号 天气晴 星期日 ... -
ACCESS数据库资源导入到ORACLE数据库表中的实现
2009-05-08 11:33 15592009年5月8号 天气晴 星期五 以下 ... -
根据 crazycode的建议,修改通过IP控制权限访问网站的部分代码
2009-05-07 18:43 11552009年5月7号 根据crazycode前辈的 ... -
网站访问通过IP(段)作为限制条件的实现方法
2009-05-07 16:32 44612009年5月7号 星期四 天气晴 ... -
nutch搜索引擎windows版本,包含中文分词技术
2009-05-05 11:40 32922009年5月5日 星 ...
相关推荐
JSP实现类似百度,google的分页.JSP,仿,google,分页,servlet分页
在java里面,如何写一个公用的自定义分页标签的实现
java类似于百度的分页小程序,附带数据库,非常经典的一个现成的Demo,可以收藏。
仿百度分页,谷歌分页页码处理 解决分页太多,智能始终显示一部分的效果 可以依照这个思路自己改,很好上手,分页思想 都有注释
类似谷歌地图 web地图 图片拖动 百度地图 网页地图效果 MyMaps.rar
java实现类似百度文库功能,在线阅读doc,pdf文档
java实现类似百度文库功能(linux).pdf
类似百度的分页工具类,可用于hibernate的分页,直接传入参数就可实现类似百度的分页;页面分页用el表达式和struts2标签2中方式写的,便于移植;
java实现类似百度文库预览pdf功能文档,实现文档在线浏览
java类模拟百度分页
JAVA分页是个经典问题,本人从网上搜集资料,并通过编程,较为完美地决地了这个问题,源码已经上传CSDN,值得下载! 我的方案是用两个TAG完成分页显示...页码格式类似百度和谷歌,比较标准, 用户可输入每页显示的行数。
Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...
java仿百度分页,全部写好封装jar吧,里面带源码。 在Action中只需调用传入一个List,在前台页面引入自定义标签。就可以使用了。操作简单。使用方便。
实现 公交的换成并在地图上绘制路线图 采用的技术 ssh三大框架
在他人基础上实现java实现仿百度文库预览文档功能, Txt/Word/Excel/PPT => PDF(OpenOffice+JodConverter) => SWF(pdf2swf)=>FlexPaper浏览。 包含了源代码,文档,部分较小文件的安装文件,部分较大文件的下载...
类似淘宝谷歌的通用分页.支持oracle mssql2000 mysql,需要把struts1的jar文件 自己放进去.太大了就不传
java做的仿百度云盘项目,包括上传下载,云盘空间展示等功能。项目封装了很多使用的utils,拿来即用。
类似百度qq空间分页,非常好用,容易理解入门
asp 数字分页 仿百度分页 仿谷歌分页,可根据实际需要调整,带数据库。
JAVA分页是个经典问题,本人从网上搜集资料,并通过编程,较为完美地决地了这个问题,浏览、增加、删除、修改、查看、搜索都可以回到原来的页码,源码已经上传CSDN,值得下载!...页码格式类似百度和谷歌,比较标准。